求1000以内所有的水仙花数。(水仙花数是一个3位数,它的每一位数字的立方和等于它本身。)

#include<stdio.h>main(){ int i=0,g,s,b,a; while(i<=1000) {++i; if(i>=100&&i<=999) { b=i/100; s=(i-b*100)/100; g=i-b*100-s*10; a=b*b*b+s*s*s+g*g*g; } if(a==i)printf("%d",a); }}这样哪里错了?为什么求出来只有一个数?
2026年09月19日 21:52
有2个网友回答
网友(1):

#include
main()

      int i=0,g,s,b,a=0;
      
      while(i<=1000) 
      {
                     ++i; 
                     if(i>=100&&i<=999) 
                     {  
                                        b=i/100;  
                                        s=(i-b*100)/10;//除10  
                                        g=i-b*100-s*10;  
                                        a=b*b*b+s*s*s+g*g*g; 
                     } 
                     
                     if(a==i)printf("%d\n",a); 
      }
}

注释部分存在问题。

网友(2):

#include

void main()
{
int i,a,b,c;
for(i=100;i<=999;i++)
{
a=i%10;
b=i/10%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d\t",i);
}
}
}