杭电acm 求水仙花数

2024-11-22 05:39:25
推荐回答(2个)
回答(1):

#include
int main()
{
 int a,b,i,j,k,f1,f2,f3;
 while((scanf("%d %d",&a,&b))!=EOF)
 {
     j=b-a+1;
  k=0;
         for(i=a;i<=b;i++)
   {
            f1=i/100;
   f2=(i-f1*100)/10;
   f3=i%10;
            if(i==f1*f1*f1+f2*f2*f2+f3*f3*f3)
   {
    if(k==0)
    {
     printf("%d",i);
    }
    if(k==1)
    {
           printf(" %d",i);
    }
    k=1;
   }
   else
    j--;
   }
             if(j==0)
     printf("no\n");
    else
     printf("\n");
 }
}

回答(2):

① if(mj=m;m=n;n=j;
这里你是想交换吧,用花括号括起来……
if(m{
j=m;
m=n;
n=j;
}
②是找那个范围里的,所以

a=m/100;
b=(m%100)/10;
c=m%10;
if(m==a*a*a+b*b*b+c*c*c)
这里把m改为i,不然for循环就没有意义了。
③ if(sum==0) printf("%d",m);
else printf(" %d",m);这里两个执行的一样,没必要判断了,直接输出吧……
暂时就这些了。你先看看……