Ответы на вопрос:
Более изящное решение : ) проблема в строке c: = (b*b*b); ты ищешь сумму кубов, а для 4-значных чисел нужно искать сумму 4-х степеней. нужно проверять число а: если от 100 до 999, то выполняем c: = (b*b*b); а если от 1000 до 9999, то выполняем c: = (b*b*b*b); код ниже работает и выдаёт результат: число армстронга ==> 153 число армстронга ==> 370 число армстронга ==> 371 число армстронга ==> 407 число армстронга ==> 1634 число армстронга ==> 8208 число армстронга ==> 9474 **************************************************************** var a,b,c,d,a2: integer; begin for a: = 100 to 9999 do begin d: =0; a2: =a; while (a2 < > 0) do begin b: = a2 mod 10; a2: = a2 div 10; if a< 1000 then c: = (b*b*b) else c: = (b*b*b*b); d: = d+c; end; if (a = d) then writeln('число армстронга ==> ', a); end; end.
Популярно: Информатика
-
EgueneOKSDFSOFK04.04.2020 18:52
-
anasteysha2000311.05.2022 11:06
-
yulya67827.04.2023 20:32
-
kotterbrother28.03.2021 12:49
-
Ihop17.06.2020 00:49
-
helsey14.04.2022 17:29
-
Неоченьумноесущество02.06.2023 14:26
-
barsik2000209.05.2022 13:32
-
lol271020.12.2022 09:04
-
Lunitoes20.05.2021 00:45