题解 | #水仙花数#
水仙花数
https://www.nowcoder.com/practice/dc943274e8254a9eb074298fb2084703
#include <stdio.h>
//定义一个函数,用来计算输入数字的各位数上的立方和
int slice_lifang(int n) {
int sum = 0;
int a = 0;
for (; n != 0; n /= 10) { //每次循环除以10,抹除该数的最后一位
a = n % 10; //n%10, 取出该数的最后一位
sum += a * a * a;
}
return sum;
}
int main() {
int num1 = 0,num2 = 0;
int a = 0,j = 0;
while(scanf("%d %d",&num1,&num2) != EOF){ //多行输入
for (int i = num1 ; i <= num2 ;i++){ //在题目所给的范围内取值遍历
a = slice_lifang(i);
if(a == i ){ //判断遍历的数如果满足条件,则计数+1
j += 1;
printf("%d ",a);
}
else{
continue;
}
}
if (0 == j){ //计数为0,则输出no
printf("no\n");
}
}
}