Страница 1 из 1
Паскаль Множества
Добавлено: 30 мар 2009, 15:46
infff
Помогите плз с решением задачи:
В поpядке убывания напечатать все целые числа из диапазона
1..400, котоpые пpедставимы в виде n^2+2*k^2, но не пpед¬ставимы в виде 4*j^2+3*k^2 (n,k,i,j>=0).
Re: Паскаль Множества
Добавлено: 30 мар 2009, 16:06
Naeel Maqsudov
Куда девать i? Нет ли тут опечатки?
Идея следующая:
Берем пустое множество Set1:=[];
Затем перебирает все пары n и k и если получившееся число >=1 b <=400, то Set1:=Set1+ЭтоЧисло;
Значения n и k надо предварительно оценить, так можно сделать
for n:=0 to 20 do for k:=0 to 14 do ....
Так как при больших значениях n или k результат точно выйдет за 400. Нет смысла рассматривать.
Аналогично получается набор чисел Set2, представимых формулой 2.
Теперь находим разность множеств Set3:=Set1-Set2;
Так как Set of не удастся вывести на печать, то придется проверять числа из диапазона [1..400] в обратном порядке, как требует условие.
for x:=400 downto 1 do if x in Set3 then write(x, ", ");
Re: Паскаль Множества
Добавлено: 06 апр 2009, 18:05
somewhere
Если N,K и J могут быть действительными, то и подход к решению будет совершенно другим. Уточните условия, а так же присутствие параметра I в задаче.