#include <iostream>
using namespace std;
bool IsFlower(int n)
{
int sum = 0;
int m = n;
while(n)
{
sum += (n%10)*(n%10)*(n%10);
n /= 10;
}
if(sum == m)
{
return true;
}
else
{
return false;
}
}
int main()
{
int m, n;
while(cin >> m >> n)
{
int flag = 0;
int flag1 = 0;
for(int i=m; i<=n; i++)
{
if(IsFlower(i) && !flag1)
{
cout << i;
flag = 1;
flag1 = 1;
}
else if(IsFlower(i))
{
cout <<" " << i;
}
}
if(!flag)
{
cout << "no";
}
cout << endl;
}
return 0;
}
其实设置两个控制变量没有意义,一个就够了。
#include <iostream>
using namespace std;
bool IsFlower(int n)
{
int sum = 0;
int m = n;
while(n)
{
sum += (n%10)*(n%10)*(n%10);
n /= 10;
}
if(sum == m)
{
return true;
}
else
{
return false;
}
}
int main()
{
int m, n;
while(cin >> m >> n)
{
int flag = 0;
for(int i=m; i<=n; i++)
{
if(IsFlower(i) && !flag)
{
cout << i;
flag = 1;
}
else if(IsFlower(i))
{
cout <<" " << i;
}
}
if(!flag)
{
cout << "no";
}
cout << endl;
}
return 0;
}