#include<cstdlib> #include<iostream> using namespace std; int main() { int n,a,b,c,i;

a=i%10;
b=(i%100)/10;
c=i/100;
cin>>i;
for(i=100;i<=n;n++)
{
if(a*a*a+b*b*b+c*c*c==i)
cout<<i<<endl;
system("pause");
}
}
求n以内水仙花数,上面的程序输不出来,求指教!
急急急急!!!!
Tip:我学的是C++语言^_^
Tip:是cin>>n;写错了。

第1个回答  2014-08-09
#include<iostream>
using namespace std;
int main()
{
int a,b,c,i,n;
while(cin>>n)
{
for(i=1;i<=n;i++)
{
a=i%10;
b=(i%100)/10;
c=i/100;
if(a*a*a+b*b*b+c*c*c==i)
{
cout<<i<<endl;
}
}
}
return 0;
}追问

你的答案是对的,但可以具体说说我之前的错误么?

追答

题目因该是100~1000的水仙花数吧,你的算法其实没问题,就是i的处理应该放在for循环里面撒。

本回答被提问者采纳
相似回答