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

0 голосов
228 просмотров

Почему не выдает числа?
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.

...