C语言求水仙花数问题

为什么n>3后,这样写就不管用了?是数太大了吗?求指教
#include<stdio.h>
int main()
{
int n,i,a,b,c,d,e,f,g;
scanf("%d",&n);
if(n==3)
{
for(i=100;i<1000;i++)
{
a=i/100;
b=i%100/10;
c=i%100%10;
if(a*a*a+b*b*b+c*c*c==i)
printf("%d\n",i);
}
}
else if(n==4)
{
for(i=1000;i<10000;i++)
{
a=i/1000;
b=i%1000/100;
c=i%1000%100/10;
d=i%1000%100%10;
if(a*a*a+b*b*b+c*c*c+d*d*d==i)
printf("%d\n",i);
}
}
else if(n==5)
{
for(i=10000;i<100000;i++)
{
a=i/10000;
b=i%10000/1000;
c=i%10000%1000/100;
d=i%10000%1000%100/10;
e=i%10000%1000%100%10;
if(a*a*a+b*b*b+c*c*c+d*d*d+e*e*e==i)
printf("%d\n",i);
}
}
else if(n==6)
{
for(i=100000;i<1000000;i++)
{
a=i/100000;
b=i%100000/10000;
c=i%100000%10000/1000;
d=i%100000%10000%1000/100;
e=i%100000%10000%1000%100/10;
f=i%100000%10000%1000%100%10;
if(a*a*a+b*b*b+c*c*c+d*d*d+e*e*e+f*f*f==i)
printf("%d\n",i);
}
}
else if(n==7)
{
for(i=1000000;i<10000000;i++)
{
a=i/1000000;
b=i%1000000/100000;
c=i%1000000%100000/10000;
d=i%1000000%100000%10000/1000;
e=i%1000000%100000%10000%1000/100;
f=i%1000000%100000%10000%1000%100/10;
g=i%1000000%100000%10000%1000%100%10;
if(a*a*a+b*b*b+c*c*c+d*d*d+e*e*e+f*f*f+g*g*g==i)
printf("%d\n",i);
}
}
}

你的a,b,c.....再怎么取最大也才9,而9的3次方是729,当n=7时,729的7倍也才5103,而此时你的i已经是1000000起步了,怎么也不会相等,从n=4开始就没有结果了追问

明白了,我搞错了,n=7时应该是7次方,谢谢了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答