首先解释一下水仙花数的概念:“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。
1.先用for循环来遍历0~1000000之间的所有数字
2.每次遍历一个数字,就求出这个数字的位数。
3.用这个数模除10,得到它的每一位,在用这个数除以10的结果进行循环,直到这个数除以10的结果为0.再调用库函数pow来计算这个数每一位的位数次方和。
4.最后一步判断这个数每一位的位数次方和是否与这个数相等。相等即为水仙花数。
以下为具体的代码实现
#include#include intmain{ for (int num = 0; num < 100000; num++) { int count = 1; int n = num; int sum = 0; while (n / 10) { count++; n = n / 10; } n = num; while (n) { sum += pow(n % 10,count); n = n / 10; } if (sum == num) { printf("%dn", num); } } }



