![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Ув.форумчане-очень нужна ваша помощь в решении задачи по информатике(язык Delphi7)
нужно создать оконное приложение с использованием эдитов,и тд.задача следующая:Можно ли число N представить в виде сумы квадратов двух натуральных чисел? если несложно-покажите полный код программы.Заранее благодарен. |
|
#2
|
||||
|
||||
|
Работает, может и проще можно не думал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
x, y, N: Integer;
begin
N:= StrToInt(Edit1.Text);
For x:= 0 To N Do
For y:= 0 To N Do
begin
if ( Sqr(x) + Sqr(y)) = N Then
begin
Label1.Caption:= 'X = ' + IntToStr(x);
Label2.Caption:= 'Y = ' + IntToStr(y);
Exit;
end;
end;
Label1.Caption:= 'No variant!';
end; |
|
#3
|
|||
|
|||
|
Проще наврядли, но оптимизировать можно.
Нет смысла перебирать до N. Можно до Round(SQRT(N)) + 1. Кроме того, есть подозрение, что второй цикл можно гнать до I, а не до конца. |
|
#4
|
||||
|
||||
|
Это будет круг...
И все целые наборы чисел (х;y) на окружности будут решением. Последний раз редактировалось Konrad, 23.06.2011 в 23:40. |
|
#5
|
|||
|
|||
|
Этот код не корректно работает...число 25 выдаёт как 5 и 0 и т.д.
|
|
#6
|
||||
|
||||
|
Ну так сделай цикл не от 0, а от 1.
|
|
#7
|
||||
|
||||
|
Цитата:
Самая рацуха! ![]() |