题目内容:
如果一个n位正整数等于它的n个数字的n次方和,则称该数为n位自方幂数。四位自方幂数称为玫瑰花数。编程计算并输出所有的玫瑰花数。
输入格式:无
输出格式:"%d\n"
#include<stdio.h>
#include<math.h>
int main()
{
int i,a;
int n,s;
for(i=1000;i<=9999;i++)//保证是四位数
{
s=0;
a=i;
while (a != 0)
{
n = a % 10;
s+=pow(n,4);//计算每位数的4次方相加和
a = a/ 10;
}
if(s==i)
printf("%d\n",s);
}
return 0;
}
为了输出所有玫瑰花数,需要:
1 .对所有四位数,即1000到9999遍历,故有for(i=1000;i<9999;i++);
2 .对每个数判断是否为玫瑰花数,如是则输出。