Почему не выдает числа? uses crt; var i:integer; begin for i:= 100 to 999 do if i=((sqr(i...

0 голосов

Почему не выдает числа?
uses crt;
var i:integer;
begin
for i:= 100 to 999 do
if i=((sqr(i div 100)*(i div 100)) +( (sqr(i div 10)mod 10)*(i div 10)mod 10) + (sqr(i mod 10)*i mod 10)) then
writeln (i);
end.


спросил от Начинающий (146 баллов) в категории Информатика
оставил комментарий от Одаренный (1.2k баллов)

если не канает попробуй ord((sqr(i div 100)*(i div 100)) +( (sqr(i div 10)mod 10)*(i div 10)mod 10) + (sqr(i mod 10)*i mod 10))

оставил комментарий от Одаренный (1.2k баллов)

 а вообще было бы неплохо для проверки завести интовую переменную например а, и перед if складывать значение скобки в а, а потом эту а сравнивать с i

оставил комментарий от Начинающий (146 баллов)

все дело что после for нужно было вводить еще программу начало,конец.

оставил комментарий от Начинающий (146 баллов)

спасибо за советы

оставил комментарий от Одаренный (1.2k баллов)

а, и все?

оставил комментарий от Начинающий (146 баллов)

beginfor i:= 100 to 999 do begin a:=i div 100; b:= (i div 10) mod 10; c:= i mod 10;  z:=(a*a*a+b*b*b+c*c*c);  if i=z then    writeln (i);    end;end.

оставил комментарий от Начинающий (146 баллов)

да

оставил комментарий от Одаренный (1.2k баллов)

я поняла

оставил комментарий от Одаренный (1.2k баллов)

просто там вроде одна операция, я подумала что не обязательно))

оставил комментарий от Одаренный (1.2k баллов)

пожалуста))

1 Ответ
0 голосов
ответил от Архангел (142k баллов)
 
Лучший ответ

Var i:integer;
begin
for i:=100 to 999 do
if i=sqr(i div 100)*(i div 100)+sqr((i div 10)mod 10)*((i div 10) mod 10)+
  sqr(i mod 10)*(i mod 10) then writeln(i)
end.

...