问题描述解决思路代码编写输出结果
问题描述找出0~100000的水仙花数并将其打印出来。
水仙花数:假设此数有n位,那么这个数等于每一位的n次方之和,例如:153=13+53+33
一、遍历1~100000的所有数字(循环遍历)
二、要确定这个数有几位(确定n)
三、求出各个位数的n次方之和
四、将第三步求出来的结果与原来的数做对比,相等则满足要求,便输出。
#include输出结果#include int main() { int i = 0; for (i = 0; i < 100000; i++) { int tmp = i; int count = 1; int sum = 0; while (tmp / 10)//判断这个数有几位 { count++; tmp = tmp / 10; } tmp = i; while (tmp)//计算各个位数的count次方之和 { sum += pow(tmp % 10, count); tmp = tmp / 10; } if (sum == i)//比较是否满足水仙花数要求 { printf("水仙花数:%dn", sum); } } return 0; }



