求出0〜999之间的所有“水仙花数”并输出
程序员文章站
2022-03-09 16:09:56
...
水仙花数是一个数每个位置的立方相加等于这个数,可以利用for循环解决,难点在于一个三位数,个位数字是模10得到,十位百位也是如此,例如153%10->3,15%10->5,10%10->1.for循环中嵌套一个while循环,定义一个临时变量x用于保存,在while循环中将三位数每个位置的立方相加。立方可以用pow来实现。`
#include<stdio.h>
#include<math.h>
void Armnumber()
{
int i=0;
for(;i<=999;i++)
{
int x=i;
int sum=0;
while(x)
{
double y=x%10;
sum+=(int)pow(y,3);
x/=10;
}
if(sum==i)
{
printf("%d\n",i);
}
}
}
int main()
{
Armnumber();
}