发布网友 发布时间:2024-05-14 19:33
共2个回答
热心网友 时间:2024-05-26 13:02
程序:
var
i,k,x:longint;
begin
for i:=1000 to 9999 do//枚举所有的四位数,因为玫瑰花数一定是四位数
begin
k:=0;
x:=i;
while x>0 do
begin
k:=k+sqr(sqr(x mod 10));//这里可能太快了。这样子,设n表示目前x的各位,则n的四次方为n*n*n*n,而sqr为求平方数,所以sqr(sqr(n))=sqr(n*n)=n*n*n*m。将结果累加到k上比较
x:=x div 10;//截去当前的个位
end;//以上为求该数每一位数字4次方之和,扫描就是从个位到千位的顺序
if k=i then writeln(i);//相等就输出
end;
end.
输出应该是这样,不懂再追问
热心网友 时间:2024-05-26 12:56
for i:=1000 to 9999 do