求出0~100000之间的所有“水仙花数”并输出。
//“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,
//如:153=1 ^ 3+5 ^ 3+3 ^ 3,则153是一个“水仙花数”。
#include<math.h>
int main()
{
int i;
for (i = 0; i < 10000; i++)
{
int n=1;
int t = i;
//1. 计算i的位数 - n
while (t / 10)
{
n++;
t = t / 10;
}
t = i;
int sum = 0;
//2. 计算i的每一位的n次方之和
while (t)
{
//pow是用来求次方数
sum += pow(t % 10, n);
t = t / 10;
}
if (sum == i)
{
printf("%d ", i);
}
}
return 0;
}
运用了pow(),如果不写头文件"math.h",那么将会运行不出来
pow是用来求次方数
图解:
因篇幅问题不能全部显示,请点此查看更多更全内容