Найти сумму квадратичных палиндромов среди первых десяти тысяч натуральных чисел - Free Pascal

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

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

Помогите с задачей! Палиндромом назовем число, состоящее не менее чем из 2-х символов или цифр, одинаково читающееся как слева направо, так и наоборот. Например, число «1221» является палиндромом, а число «1224» – нет. Назовем квадратичным палиндромом число, квадрат которого является палиндромом. Например, число «26» является квадратичным палиндромом, так как его квадрат «626» является палиндромом. Сумма квадратичных палиндромов среди первых десяти тысяч натуральных чисел составит…

Решение задачи: «Найти сумму квадратичных палиндромов среди первых десяти тысяч натуральных чисел»

textual
Листинг программы
var k, n, r, s, t: longword;
begin
  s := 0;
  for n := 4 to 10000 do
    begin
      t := n * n;
      k := t;
      r := 0;
      repeat
        r := r * 10 + t mod 10;
        t := t div 10
      until t = 0;
      if r = k then s += n
    end;
  write('S = ', s);
  readln
end.

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

В этом коде:

  1. Создаются пять переменных: k, n, r, s, t типа longword (12 чисел с плавающей точкой).
  2. Переменная s инициализируется нулем. Она будет использоваться для накопления суммы квадратичных палиндромов.
  3. Запускается цикл от 4 до 10000. Цикл перебирает все числа от 4 до 10000.
  4. Внутри цикла вычисляется квадрат числа n, затем это значение присваивается переменной t.
  5. Затем внутри цикла вычисляется число r, которое представляет собой сумму цифр квадрата числа n.
  6. Затем внутри цикла проверяется, равно ли число r исходному числу k (т.е. квадрату числа n). Если равно, то к переменной s добавляется число n.
  7. После окончания цикла выводится значение переменной s.
  8. Программа завершается.

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

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