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

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

Почему не выдает числа?
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 баллов) | 194 просмотров
0

если не канает попробуй 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))

0

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

0

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

0

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

0

а, и все?

0

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.

0

да

0

я поняла

0

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

0

пожалуста))

Дан 1 ответ
0 голосов
Правильный ответ

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.

(142k баллов)