#931: 輸出結果不一,請指教


bear24ice (我決定放棄ZJ了……)

學校 : 高雄市立高雄高級中學
編號 : 3125
來源 : [115.43.33.60]
最後登入時間 :
2018-05-11 13:49:41
a010. 因數分解 | From: [218.173.111.210] | 發表日期 : 2008-11-15 00:43

#include<stdio.h>
main(){
    int a,i,t;
    while(scanf("%d",&a)!=EOF){
        if(a%2==0){
   printf("2");
   for(t=0;a%2==0;t++){
   a/=2;
   }
   if(t>1) printf("^%d",t);
   printf(" * ");
        }
        for(i=3;i<=a;i+=2){
            if(a%i==0){
   printf("%d",i);
   for(t=0;a%i==0;t++){
   a/=i;
   }
   if(t>1) printf("^%d",t);
   printf(" * ");
         }
        }
        printf("\b\b \n");
 }
}

最後面總是多輸出一個「 * 」

可是我自己編譯的都沒這問題

 
#967: Re:輸出結果不一,請指教


ken0816 (林宇亮不是我)

學校 : 新北市立福和國民中學
編號 : 2791
來源 : [59.112.85.172]
最後登入時間 :
2011-08-18 15:54:29
a010. 因數分解 | From: [218.167.72.110] | 發表日期 : 2008-11-21 20:52

#include<stdio.h>
main(){
    int a,i,t;
    while(scanf("%d",&a)!=EOF){
        if(a%2==0){
   printf("2");
   for(t=0;a%2==0;t++){
   a/=2;
   }
   if(t>1) printf("^%d",t);
   printf(" * ");
        }
        for(i=3;i<=a;i+=2){
            if(a%i==0){
   printf("%d",i);
   for(t=0;a%i==0;t++){
   a/=i;
   }
   if(t>1) printf("^%d",t);
   printf(" * ");
         }
        }
        printf("\b\b \n");這行有誤,此網站無法使用。
 }
}

 

這是我寫的程式碼:

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

int main(){
    int a,i,t,b[1000]={0},c;
    while(scanf("%d",&a)!=EOF){
        c=0;
   if(a%2==0){
   b[c]=2;
   for(t=0;a%2==0;t++){
   a/=2;
   }
   if(t>1) b[c+1]=t;
   c=c+2;
   }
       
        for(i=3;i<=a;i+=2){
            if(a%i==0){
   b[c]=i;
   for(t=0;a%i==0;t++){
   a/=i;
   }
   b[c+1]=t;
   c=c+2;
      }
   }
  
   for(i=0;i<=c-2;i=i+2){
   if(b[i+1]>1) printf("%d^%d",b[i],b[i+1]);
   else printf("%d",b[i]);
   if(i<=c-4)printf(" * ");
   }
        printf("\n");
 }
 return 0;
}




 

 
ZeroJudge Forum