题解 | #水仙花数#
水仙花数
https://www.nowcoder.com/practice/dc943274e8254a9eb074298fb2084703
#include <stdio.h> #include <math.h> //对函数做了优化,因为水仙花数也是自幂数中的一种,该函数能够判断所有自幂数 //自幂数判断 int ziminum(int x) { int tmp = x; int n = 1; //判断位数 while(tmp /= 10) { n++; } //判断是否是自幂数 int sum = 0; for(tmp = x; tmp; tmp /= 10) { sum += (int)pow(tmp%10, n); } //判断返回 if(sum == x) return 1; else return 0; } int main() { int m = 0; int n = 0; int flag = 1; while(scanf("%d%d", &m, &n) != EOF) { int i = 0; for(i=m; i<=n; i++) { if(ziminum(i))//判断是否是自幂数 { printf("%d ", i); flag = 0; } } if(flag == 1) { printf("no\n"); } } return 0; }