Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.06.2011, 20:54
Dima170792 Dima170792 вне форума
Новичок
 
Регистрация: 02.04.2011
Сообщения: 61
Репутация: 10
По умолчанию Можно ли число N представить в виде сумы двух квадратов натуральных чисел?

Ув.форумчане-очень нужна ваша помощь в решении задачи по информатике(язык Delphi7)
нужно создать оконное приложение с использованием эдитов,и тд.задача следующая:Можно ли число N представить в виде сумы квадратов двух натуральных чисел? если несложно-покажите полный код программы.Заранее благодарен.
Ответить с цитированием
  #2  
Старый 23.06.2011, 21:51
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Работает, может и проще можно не думал:
Код:
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;
__________________
If end Then begin;
Ответить с цитированием
  #3  
Старый 23.06.2011, 23:16
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Проще наврядли, но оптимизировать можно.
Нет смысла перебирать до N. Можно до Round(SQRT(N)) + 1.
Кроме того, есть подозрение, что второй цикл можно гнать до I, а не до конца.
Ответить с цитированием
  #4  
Старый 23.06.2011, 23:31
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Это будет круг...
И все целые наборы чисел (х;y) на окружности будут решением.

Последний раз редактировалось Konrad, 23.06.2011 в 23:40.
Ответить с цитированием
  #5  
Старый 24.08.2011, 23:19
basyk basyk вне форума
Прохожий
 
Регистрация: 23.08.2011
Сообщения: 1
Репутация: 10
Радость Этот код не корректно работает...число 25 выдаёт как 5 и 0 и т.д.

Этот код не корректно работает...число 25 выдаёт как 5 и 0 и т.д.
Ответить с цитированием
  #6  
Старый 24.08.2011, 23:25
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ну так сделай цикл не от 0, а от 1.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 24.08.2011, 23:41
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
Хорошо

Цитата:
Сообщение от Konrad
Это будет круг...
И все целые наборы чисел (х;y) на окружности будут решением.

Самая рацуха!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025