codeup22810 水仙花数
时空限制 1000ms/128MB
题目描述
求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。求n-m的所有水仙花数,如果没有输出'NO'。
输入
输入2个整数m,n
输出
输出水仙花数,每行一个!如果没有输出‘NO’。
样例输入
100 500
样例输出
153
370
371
407
代码
法一:单层循环
#include<iostream>
using namespace std;
int main(){
int m,n,cnt=0;
cin>>m>>n;
for (int i=m; i<=n; ++i){
int g=i%10;
int s=i/10%10;
int b=i/100;
if (g*g*g+s*s*s+b*b*b==i){
cout<<i<<endl;
cnt++;
}
}
if (!cnt) cout<<"NO\n";
return 0;
}
法二:两层循环
#include<iostream>
using namespace std;
int main(){
int m,n,cnt=0;
cin>>m>>n;
for (int i=m; i<=n; ++i){
int t=i,sum=0;
while (t){
sum += (t%10)*(t%10)*(t%10);
t /= 10;
}
if (sum==i){
cout<<i<<endl;
cnt++;
}
}
if (!cnt) cout<<"NO\n";
return 0;
}