Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];

Вниз

что не так в этой задаче   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
6-62685
hedgehoge
2002-11-20 15:59
2003.01.20
CallBack on DCOM


14-62766
Zhirnov Maxim
2002-12-30 12:57
2003.01.20
Ищу реферат (на немецком). Помогите


1-62603
vlad40
2003-01-09 11:41
2003.01.20
Обращение к компоненту по его имени


3-62403
viper
2002-12-24 12:07
2003.01.20
DBGrid


1-62649
AlV
2003-01-08 18:10
2003.01.20
Как программным способом наполнить компонент ImageList





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский