Консультация № 163155
24.03.2009, 17:33
0.00 руб.
0 4 2
Здравствуйте, уважаемые эксперты! помогите мне решить задачу в Паскале: Найдите все трёхзначные числа, равные сумме кубов своих цифр. Учтите, что abc=100a+10b+c. Заранее большое спасибо!

Обсуждение

Неизвестный
24.03.2009, 17:53
общий
это ответ
Здравствуйте, Yuliya-bakumovva!
Программа:
Код:

program Pascal_163155;
{ Диапазон поиска }
const
MIN=100;
MAX=999;
{ Функция вычичляет сумму кубов цифр числа }
function Sum3(num:Word):Word;
var
res,t:Word;
begin
res:=0;
while num<>0 do begin
t:=num mod 10;
res:=res+t*t*t;
num:=num div 10;
end;
Sum3:=res;
end;
var
i:Word;
begin
{ Перебираем числа в цикле }
for i := MIN to MAX do
{ Если число равно сумме кубов цифр то печатаем его }
if i=Sum3(i) then WriteLn(i);
ReadLn;
end.

Результат работы:
Код:

153
370
371
407
давно
Старший Модератор
31795
6196
24.03.2009, 18:04
общий
Код:
var
a:integer;
function Check(b:integer):integer;
begin
if b>9 then Check:=Check(b div 10)+((b mod 10)*(b mod 10)*(b mod 10))
else Check:=b*b*b;
end;
begin
a:=999;
Write('Result:');
repeat
if (a=Check(a))then write(a:6);
dec(a);
until a=99;
writeln;
write('Stop!');
readln;
end.

Вариант с рекурсией.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
24.03.2009, 18:11
общий
Круто. А я и не додумался.
Неизвестный
24.03.2009, 20:11
общий
24.03.2009, 21:41
это ответ
Здравствуйте, Юлия-Sonne!
Текст в приложении. Результат будет такой:
153
370
371
407

Приложение:
program SumCub;

var a,b,c,x,y: integer;

begin
for a:=1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do begin
x:=a*a*a+b*b*b+c*c*c;
y:=100*a+10*b+c;
if x=y then Writeln(y);
end;
end.
Форма ответа