#2525: 神奇的WA,用DEV跑是OK的?


ashspark (ggbb)

學校 : 不指定學校
編號 : 8168
來源 : [114.136.220.239]
最後登入時間 :
2024-04-27 19:36:09
a040. 阿姆斯壯數 | From: [140.112.240.134] | 發表日期 : 2009-10-21 18:40

附上錯誤訊息= = 真是苦惱啊!我想過是不是他故意先輸入數字大的,所以寫過比大小

不過還是一樣的...WA

與正確輸出不相符(line:1)
您的答案為: none
正確答案為: 153 370 371 407

不過我在windows底下跑100 999 會得到 153 370 371 407

有請強者解答一下,謝謝。

 

#include<stdio.h>
int main(){
    int num1,num2,temp,digit[8]={0};
    while(scanf("%d%d",&num1,&num2)!=EOF){
   
    int print_or_not=0;    
    
        for(;num1<=num2;num1++){
        int count_digit=0;
        int i=num1;
        digit[8]=0;    
            
            while(i>0){
                digit[count_digit]=i%10;
                i=i/10;
                count_digit++;
                      }
                      
        int i1,i2,digit_value;              
            for(i1=0;i1<count_digit;i1++){
                digit_value=digit[i1];
                
                for(i2=2;i2<=count_digit;i2++){
                    digit[i1]*=digit_value;
                                              }
            digit[8]+=digit[i1];         
                                         }
                              
        if(num1==digit[8]){
        printf("%d ",num1);       
        print_or_not=1;   }                             
                               }


    if(print_or_not==1)
    printf("\n");
    else
    printf("none\n");        
                                         }
return 0;
          }

 
#7732: Re:神奇的WA,用DEV跑是OK的?


wewewe41611 (which)

學校 : 臺北市立成功高級中學
編號 : 25654
來源 : [140.112.73.237]
最後登入時間 :
2015-05-25 16:43:57
a040. 阿姆斯壯數 | From: [140.112.30.143] | 發表日期 : 2013-05-09 11:58

附上錯誤訊息= = 真是苦惱啊!我想過是不是他故意先輸入數字大的,所以寫過比大小

不過還是一樣的...WA

與正確輸出不相符(line:1)
您的答案為: none
正確答案為: 153 370 371 407

不過我在windows底下跑100 999 會得到 153 370 371 407

有請強者解答一下,謝謝。

 

#include
int main(){
    int num1,num2,temp,digit[8]={0};
    while(scanf("%d%d",&num1,&num2)!=EOF){
   
    int print_or_not=0;    
    
        for(;num1<=num2;num1++){
        int count_digit=0;
        int i=num1;
        digit[8]=0;    
            
            while(i>0){
                digit[count_digit]=i%10;
                i=i/10;
                count_digit++;
                      }
                      
        int i1,i2,digit_value;              
            for(i1=0;i1                digit_value=digit[i1];
                
                for(i2=2;i2<=count_digit;i2++){
                    digit[i1]*=digit_value;
                                              }
            digit[8]+=digit[i1];         
                                         }
                              
        if(num1==digit[8]){
        printf("%d ",num1);       
        print_or_not=1;   }                             
                               }


    if(print_or_not==1)
    printf("\n");
    else
    printf("none\n");        
                                         }
return 0;
          }


你的陣列開8 實際上能用的空間只有0~7唷~ 把後面的8改成7就對摟^^  
ZeroJudge Forum