Текущий архив: 2003.01.20;
Скачать: CL | DM;
Вниз
что не так в этой задаче Найти похожие ветки
← →
Fors (2003-01-10 13:51) [0]Мастера подскажите, что не так в этой задаче. Дано натуральное число N. Можно ли его представить в виде суммы квадратов трех натуральных чисел?
ReadLn(N);
for i:= 1 to N-2 do
for j:=i to N-2 do
for k:=j to N-2 do
if (Sqr(i)+Sqr(j)+Sqr(k))=N then
WriteLn("yes")
else
WriteLn("no");
ReadLn
Результат какая та чепухаю Множество нет, нет, нет.......
← →
MBo (2003-01-10 14:01) [1]модификация этого же примитивного метода
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k,n,amax:integer;
begin
for n:=3 to 50 do begin
amax:=trunc(sqrt(n-1));
for i:=1 to amax do
for j:=i to amax do
for k:=j to amax do
if sqr(i)+sqr(j)+sqr(k)=n then
memo1.lines.add(format("%d: %d %d %d",[n,i,j,k]));
end;
← →
Slayer (2003-01-10 14:02) [2]Нафига стока циклов? У меня вот так работает.
var
n, i: integer;
f: boolean;
begin
f:= False;
n:= StrToInt(Edit1.Text);
for i:= 1 to n do
if n = (sqr(i)+sqr(i)+sqr(i)) then
f:= True;
if f = True then
showmessage("Yes")
else
showmessage("No");
end;
← →
Alx2 (2003-01-10 14:14) [3]>Slayer (10.01.03 14:02)
То, что у тебя написано вообще не требует цмклов.
Result := Frac(sqrt(n/3))<1E-10;
← →
Alx2 (2003-01-10 14:16) [4]>Slayer (10.01.03 14:02)
Нагнал. Сорри :)
Но твой алгоритм не решает поставленную задачу
← →
Slayer (2003-01-10 14:20) [5]Я непонял, чего ты нагнал, ведь то что ты паписал работает.
А почему мой не решает, ведь у меня тоже все работает.
← →
Fors (2003-01-10 14:23) [6]Да но эту задачу надо решить способом вложенных циклов
← →
Alx2 (2003-01-10 14:24) [7]>Slayer (10.01.03 14:20)
Нагнал с критерием целостности Frac(a)=0 => a - целое. Но в моем примере этот вариант не всегда будет корректен (можно подобрать такое n, что Frac(sqrt(n/3))<1E-10 но sqrt(n/3) - не целое (машинный нуль, едрить его:))
>почему мой не решает, ведь у меня тоже все работает.
Твой вариант пытается разложить в сумму трех одинаковых квадратов. А квадраты не обязаны быть одинаковыми
← →
Slayer (2003-01-10 14:26) [8]А, птьфу блин, я и не заметил, что числа то разные, извеняюсь.
← →
Alx2 (2003-01-10 14:27) [9]>Fors (10.01.03 14:23
MBo уже все написал (10.01.03 14:01)
← →
Slayer (2003-01-10 14:29) [10]Ну дык тагда прога Fors"a работает, просто надо убрать из цикла вывод "да" или "нет", а сделать её за циклами, а в цикл вделать переменную булеан, и если условие выполняестся, присваевать её значение True, циклы прерывать, а потом выводить "да" или "нет".
← →
Fors (2003-01-10 15:06) [11]Все ок ребята работает. Спасибо!!!!!
Страницы: 1 вся ветка
Текущий архив: 2003.01.20;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.008 c