#11215: 一階段一階段都讓他印出來了卻還是不知道錯在哪


heyyou2117 (unknown)


#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{
printf("輸入n,m(n<m,m>0,n<1000000)\n");
int n,m;
int k=1,cnt=0,num,i;
while(scanf("%d %d",&n,&m)!=EOF)
{

for(i=n;i<=m;i++)
{
num=i;
while(num=num/10)
{
k++;
}
//printf("\n%d\n",k);
num=i;
int sum=0;
//int t;//t=pow(num%10,k);
while(num)
{
sum=sum+pow(num%10,k);
//printf("\n%d \n",t);
//printf("\n%d \n",sum);
num=num/10;
//printf("\n%d \n",num);
}

if(sum==i)
{
cnt++;
printf("%d ",i);
}
}

if(cnt==0)
{
printf("none");
}


}


system("pause");
return 0;
}

#13608: Re:一階段一階段都讓他印出來了卻還是不知道錯在哪


snakeneedy (蛇~Snake)


#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{
  printf("輸入n,m(n<m,m>0,n<1000000)\n");
  int n,m;
  int k=1,cnt=0,num,i;
  while(scanf("%d %d",&n,&m)!=EOF)
  {

    for(i=n;i<=m;i++)
    {
      num=i;
      while(num=num/10)
      {
        k++;
      }
      //printf("\n%d\n",k);
      num=i;
      int sum=0;
      //int t;//t=pow(num%10,k);
      while(num)
      {
        sum=sum+pow(num%10,k);
        //printf("\n%d \n",t);
        //printf("\n%d \n",sum);
        num=num/10;
        //printf("\n%d \n",num);
      }

      if(sum==i)
      {
        cnt++;
        printf("%d ",i);
      }
    }

    if(cnt==0)
    {
      printf("none");
    }


  }


  system("pause");
  return 0;
}

 


zerojudge (或其他的 online judge) 中,不需要輸出給人辨別的提示文字(除非題目有規定),所以 printf("輸入n,m(n<m,m>0,n<1000000)\n"); 可以拿掉;local 測試的 system("pause"); 在上傳前也要拿掉