Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 23:24   #1
pdef
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 10
По умолчанию Задача о квадратах.

Помогите пожалуйста решить.

Дано натуральное число n. Проверьте,можно ли представить его в виде суммы двух квадратов натуральных чисел.

Описание входа:
На вход число натуральное N<10^9

Описание выхода:
Выведете YES или NO в зависимости от ответа задачи.В случае положительного ответа во второй строке выведете 2 числа сумма квадратов которых равна N.Числа выводятся в порядке возрастания.

Пример:
Вход: Выход:
100 YES
6 8

11 NO
pdef вне форума Ответить с цитированием
Старый 21.09.2011, 23:33   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

грубый набросок, работать будет долго...
Код:
var i,j:LongInt;
     res:Byte;
for i:=1 to N do
for j:=1 to N do
begin
   if(i*i+j*j=N)then res:=1
   else res:=0;
    if(N<(i*i+j*j))then continue;//выход из цикла по j - чтоб сократить работу
end;
if(res=1)then ShowMessage('YES')
else ShowMessage('NO');
захотите сократить число итераций - сокращайте командами break или continue;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 21.09.2011 в 23:38.
NetSpace вне форума Ответить с цитированием
Старый 21.09.2011, 23:37   #3
pdef
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 10
По умолчанию

Не могли бы вы сделать полное решение)
pdef вне форума Ответить с цитированием
Старый 21.09.2011, 23:39   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

это DELPHI. Вам всё равно на каком языке делать?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 21.09.2011, 23:42   #5
pdef
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 10
По умолчанию

Нет,именно паскаль.Причём самые примитивные команды.К примеру ShowMessage не знает - только writeln;
pdef вне форума Ответить с цитированием
Старый 21.09.2011, 23:43   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

более быстрое решение (и на "чистом" Паскаль) было выложено буквально сегодня ТУТ
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.09.2011, 23:47   #7
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

аха, TURBO PASCAL. ну тогда так:
Код:
var i,j:LongInt;
     res:Byte;
begin
    WriteLn('N=');
    Read(N);
    for i:=1 to N do
    for j:=1 to N do
    begin
       if(i*i+j*j=N)then
       begin
          res:=1;
          WriteLn('YES; ','i=',i,'; j=',j);
       end  
       else res:=0;
       if(N<(i*i+j*j))then continue;//выход из цикла по j - чтоб сократить работу
    end;
    if(res=0)then WriteLn('NO');
end.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 21.09.2011 в 23:49.
NetSpace вне форума Ответить с цитированием
Старый 21.09.2011, 23:49   #8
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

он по ходу работы будет выводить Вам YES и два числа,
а в конце всё равно напишет один раз NO. но это нестрашно...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 21.09.2011, 23:51   #9
pdef
Пользователь
 
Регистрация: 04.05.2011
Сообщений: 10
По умолчанию

Спасибо большое)
pdef вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЗАДАЧА Nadushka Помощь студентам 11 10.11.2012 14:28
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51
задача ksk Microsoft Office Excel 2 17.02.2011 23:08