acwing每日一题-10

题目

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,它是这样定义的:

“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33

现在要求输出所有在 m 和 n 范围内的水仙花数。

输入格式

输入包含多组测试数据。

每组数据占一行,包含两个整数 m 和 n。

最后一行 0 0 表示输入结束。

输出格式

每组数据输出一行答案,从小到大输出所有位于 [m,n] 范围内的水仙花数,数之间用空格隔开,如果没有则输出 no。

数据范围

100≤m≤n≤999,
输入最多包含 10 组数据。

输入样例:

1
2
3
100 120 
300 380
0 0

输出样例:

1
2
no
370 371

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int thpower(int s)
{return s*s*s;}
int main()
{
int m,n;
while(cin>>m>>n&&(m||n))
{
int cnt=0;
for(int i=m;i<=n;i++)
{
if(thpower(i/100)+thpower(i%100/10)+thpower(i%10)==i) {cout<<i<<" ";cnt++;}
}
if(!cnt) cout<<"no";
cout<<endl;
}
return 0;
}