http://acm.hdu.edu.cn/showproblem.php?pid=2010
#include <iostream>
using namespace std;
int main()
{
int m,n;
while(cin>>m>>n,100<=m&&m<=n&&n<=999)
{
int a=0,b=0,c=0,i=0;
for(;m<=n;++m)
{
a=m/100;//获取最高位
b=(m-a*100)/10;//获取第二位
c=m%10;//获取最低位
if (m==a*a*a+b*b*b+c*c*c)
{
if(i==0)
cout<<m;
else
cout<<" "<<m;//输出格式
i++;//用于表示有水仙花数出现过
}
}
if(i==0)
cout<<"no";
cout<<endl;
}
return 0;
}
问题解决:
if(i==0)
cout<<m;
else
cout<<" "<<m;//输出格式
此语句原来为cout<<m<<"";导致编译格式出错。是因为当最后一个m输出后还输出了一个空格。改过后就可以编译通过。其实两种情况结果是一样的,只是格式问题。