问题:求一个四位数,每一位的平方的和加起来即为这个数,求这个数,答案是7744,但是为什么我下面的程序却得不出答案??procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
a:integer;
b:integer;
c:integer;
e:integer;
begin
i:=1;
for i:=1 to 9999 do
a:=trunc(i/1000);
b:=trunc((i-1000*a)/100);
c:=trunc((i-1000*a-100*b)/10);
e:=i-1000*a-100*b-10*c;
if i=sqr(a)+sqr(b)+sqr(c)+sqr(e)
then
label1.caption:=inttostr(i);
end;end.
var
i:integer;
a:integer;
b:integer;
c:integer;
e:integer;
begin
i:=1;
for i:=1 to 9999 do
a:=trunc(i/1000);
b:=trunc((i-1000*a)/100);
c:=trunc((i-1000*a-100*b)/10);
e:=i-1000*a-100*b-10*c;
if i=sqr(a)+sqr(b)+sqr(c)+sqr(e)
then
label1.caption:=inttostr(i);
end;end.
9999 每位的平方和是多少啊
sum = 9*9+9*9+9*9+9*9 = 4*9*9 = 324
这会是四位数么?
也许我理解错了连9999的每位的平方和都小于4位数,还会有答案
不然就只执行了a:=trunc(i/1000);而以
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
a:integer;
b:integer;
c:integer;
e:integer;
begin
i:=1;
for i:=1 to 9999 do
begin
a:=trunc(i/1000);
b:=trunc((i-1000*a)/100);
c:=trunc((i-1000*a-100*b)/10);
e:=i-1000*a-100*b-10*c;
j:= sqr(a)*a+sqr(b)*b+sqr(c)*c+sqr(e)*e;
if i= j then label1.caption:=inttostr(i);
end;end;
2、在for i:=1 to 9999 do后面缺少了begin ....end; 只执行了a:=trunc(i/1000)