Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Целочисленная арифметика

Автор: XANDER 14.12.2005 17:08

Даны натуральные числа n, m. Найти все натуральные числа меньше n, квадрат суммы цифр которых равен m.

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

Автор: NorthAngel 14.12.2005 20:37

Цитата(XANDER @ 14.12.2005 17:08) *

Даны натуральные числа n, m. Найти все натуральные числа меньше n, квадрат суммы цифр которых равен m.

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


Код

uses crt;
var
  b,t,s,i:integer;
  n,m,a:longint;
begin
   clrscr;
   write('n = ');  read(n);
   write('m = ');  read(m);
   for i:=1 to n-1 do
   begin
     s:=0;
     a:=i;
     repeat
        b:=a div 10;
        t:= a-b*10;
        s:=s+t;
        a:=b;
     until a<=0;
     if s*s=m then writeln(i);
   end;
   readkey;
end.

Автор: XANDER 15.12.2005 1:11

NorthAngel,

Немогу найти где ошибка, подскажи.

Автор: lapp 15.12.2005 14:10

Извини - а почему ты думаешь, что здесь есть ошибка?

Автор: NorthAngel 15.12.2005 15:07

Никто не застрахован от ошибок. blink.gif
НО.. напиши конкретные данные ввода, и что получилось.
Я здесь никакой ошибки не вижу.

Автор: lapp 15.12.2005 16:26

Я проверил с разными данными - все работает как из пушки!
Молодец, Ангел, хорошая работа. good.gif

Ума не приложу, что имел в виду Xander. Подождем - может и увидим..

Автор: volvo 15.12.2005 16:28

lapp,
может он подпись NorthAngel по ошибке за замечание принял? smile.gif

Автор: lapp 15.12.2005 17:57

У меня тоже такая мысль мелькнула smile.gif
Тогда это можно в раздел смешных случаев постить.. только как?

Автор: klem4 15.12.2005 20:23

uses crt;
var
n,m,s,i,temp : integer;
begin
clrscr;

write('n='); readln(n);

write('m='); readln(m);

for i := 1 to n-1 do begin
s := 0;
temp := i;
while(temp>0) do begin
s := s + temp mod 10;
temp := temp div 10;
end;

if sqr(s) = m then writeln(i);
end;

readln
end.


Автор: NorthAngel 16.12.2005 19:25

mega_chok.gif использовано на две переменные меньше.. мдаа.. немного не рационально поступила ='(

Автор: DASHA 16.12.2005 20:04

Все огромное спасибо!!!