水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153)。
定义一个函数int function(int a, int b),计算区间[a,b]或区间[b,a]上水仙花数的个数。

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。 (例如:1^3 + 5^3 + 3^3 = 153
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- _GX_ 2022-01-14 23:20关注
#include <stdio.h> #include <math.h> int is_narcissistic_number(int x) { int n = (int)log10(x) + 1; int y = x; int sum = 0; while (y) { sum += pow(y % 10, n); y /= 10; } return sum == x; } int function(int a, int b) { int count = 0; for (int i = a; i <= b; i++) if (is_narcissistic_number(i)) count++; return count; } int main() { int a, b; scanf("%d%d", &a, &b); printf("%d\n", function(a, b)); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报