mmoskow3
?>

Напишите программу, которая проверяет, является ли введенная строка десятичным числом (на c)

Информатика

Ответы

mayorovmisc6
Более изящное решение : ) проблема в строке  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.
zverevahelen
Более изящное решение : ) проблема в строке  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.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая проверяет, является ли введенная строка десятичным числом (на c)
Ваше имя (никнейм)*
Email*
Комментарий*