На промежутке найти числа, сумма цифр которых равна корню n-ой степени из этого числа: найти ошибку - Free Pascal

Узнай цену своей работы

Формулировка задачи:

На заданном числовом промежутке требуется найти все числа, сумма цифр каждого из которых равна корню n-й степени из этого числа, где n - количество цифр числа. Вот все числа: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 81, 512, 2401. Но при вводе, например, промежутка от 600 до 1000 программа "молчит", а надо вывести, мол таких чисел нет.
uses crt;
var m,n,i,j,sum,step,x: longint;
c: integer;
s,s2:string;
Begin
repeat
clrscr;
writeln('vvedite nashalo otrezka');
readln(n);
writeln('vvedite konec otrezka');
readln(m);
until m>n;
for i:=n to m do begin
str(i,s);
for j:=1 to length(s) do begin
val(s[j],x,c);
sum:=sum+x;
end;
step:=sum;
for j:=1 to length(s) do
step:=step*sum;
str(step,s2);
if s=s2 then
write(s,'  ') ;
sum:=0;
end;
readln;end.

Решение задачи: «На промежутке найти числа, сумма цифр которых равна корню n-ой степени из этого числа: найти ошибку»

textual
Листинг программы
step:=sum;
for j:=1 to length(s)-1 do
step:=step*sum;
str(step,s2);

Объяснение кода листинга программы

  1. Переменная sum инициализируется значением 1.
  2. Переменная step инициализируется значением sum.
  3. Запускается цикл for, который выполняется от 1 до length(s)-1 (где s - это строка, содержащая число).
  4. Внутри цикла перемножается значение переменной step на значение переменной sum.
  5. Результат умножения присваивается переменной step.
  6. После окончания цикла значение переменной step преобразуется в строку и присваивается переменной s2.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы