题解 | #水仙花数#
水仙花数
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;
}
查看9道真题和解析