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

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

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

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

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

textual
Листинг программы
  1. step:=sum;
  2. for j:=1 to length(s)-1 do
  3. step:=step*sum;
  4. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы