题目描述:
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤7)。
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
—————————————————————————————
超时原因:
在PTA中运行超时是因为使用了自带的<math.h>库,运行速度较慢,这里自行定义一个power()函数即可(定义为pow()可能会有警告)
重点(自己跌的坑):
- 主要思路是将利用穷举法测试每个数字,提取出测试数字的每个位数的n次方相加,看是否等于原数字
- 提取数字末位方法:除10取余
- 去掉末位方法:除10取商
- 注意一定要在每次遍历时重置结果值r和遍历数字num
- 自行定义power()函数以提高效率
#include<stdio.h>
i