
Число Армстронга представляет собой такое число из k цифр, именно для которого сумма k-х степеней цифр его равняется самому числу, вот к примеру: 153=1^3+5^3+3^3...
Попробуем теперь найти пятерку самых больших чисел Армстронга, которые состоят из не больше, чем n цифр.
Необходимо отметить, что программка наша также должна считать выходые данные из файла под названием input.txt и выводить полученный результат в output.txt
Давайте сейчас покажем пример с комментариями по ходу решения данной задачки.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
j,n,n1,n2,i,t,q,r,y,o,s,b:integer;
k:string;
g:array[1..100] of integer;
begin
reset(input,'input.txt');
rewrite(output,'output.txt');
readln(n);
n2:=9;
for i:=1 to n-1 do
begin
n2:=n2*10+9;
end;
n:=1; //Это есть разрядность самого числа... в данном случае будем начинать с однозначного
o:=10; //Это есть делитель, используемый с целью определения последующей разрядности числа
for i:=1 to n2 do //Это цикл перебора чисел
begin
s:=i mod o; //Для проверки какое число(Однозначное либо двузначное)
if s=0 then //В том случае когда остаток от деления = 0 то получили мы следующее по разрядности число
begin
n:=n+1; //Для увеличения разрядности числа
o:=o*10; //Для увеличения делителя
end;
k:=inttostr(i); //Здесь разбиваем число на нужные составляющие
for j:=1 to n do //Перебираем все составляющие числа
begin
r:=1; //это изначальный множитель
for t:=1 to n do //приводим цикл возведения в степень
begin
q:=strtoint(k[j]); //В этом случае переводим составляющую из типа строкового в числовой
r:=r*q; //Тут перемножаем
end;
y:=y+r; //Ищем сумму составляющих степеней
end;
if i=y then //Приравниваем число с суммой степеней его составляющих
begin
b:=b+1; //в том случае ежели совпало
g[b]:=i; //то пишем число в массив
end;
y:=0; //приводим к обнулению саму сумму
end;
for i:=b-4 to b do //Цикл перебора последних пяти чисел массива
begin
append(output);
write(g[i],' ');
end;
close(input);
close(output);
end.
П.С. Часто бывает интересно решить какую-то новенькую задачу, ведь грамотные задачки хорошо подходят для нагрузки мозгов и улучшения профессионального уровня программиста.
Спонсор поста: Вы серьезно интересуетесь сферой IT, компьютерами и блогосферой? Последние и самые свежие новости интернета всегда есть возможность узнать на веб-сайте webhorn.ru! Посещая представленный интернет-ресурс Вы всегда будете знать первым о том, что происходит в компьютерном мире!