题解 | #水仙花数#
水仙花数
https://www.nowcoder.com/practice/dc943274e8254a9eb074298fb2084703
#include <stdio.h> #include<math.h> int main() { int m = 0; int n = 0; while (scanf("%d %d", &m, &n) == 2) { int flag = 0; for (int i = m; i <= n; i++) { int sum = 0;//一定要将sum定义在里面,消除上一次sum记录的数值 int a = i;//这里定义a是因为要确保不用动i,让a代替i做下面的步骤,再把符合条件的i输出来就行 while (a > 9)//这里解决的是个位和十位的立方相加步骤 { sum += pow(a % 10, 3); a /= 10; } sum += pow(a,3);//这里是加上百位上数字的立方 if (sum == i) { printf("%d ", i); flag = 1; } } if (flag == 0) printf("no\n"); } return 0; }