#7409: 一直TLE


mrsasuke (極限)


程式碼如下:

#include <stdio.h>

 

int main (){

int a[12]={},b[26]={1,0,9,8,7,6,5,4,9,3,2,2,1,0,8,9,8,7,6,5,4,3,1,3,2,0},i,sum,midsum;

/*b[26]是A~Z的 (十位數+個位數*9)%10 */

while ((a[2]=getchar ()-48)!=EOF){   //輸入9個數

for (i=3;i<=11;i++){

a[i]=getchar ()-48;

}

midsum=(8*a[2]+7*a[3]+6*a[4]+5*a[5]+4*a[6]+3*a[7]+2*a[8]+a[9])%10;//前8個數的中途總合

sum=(20-a[10]-midsum)%10;   //第一個英文字的(十位數+個位數*9)%10是多少

for (i=0;i<=25;i++){                //搜尋b[26],找到等於sum的就印出來

if (b[i]==sum)

printf ("%c",i+65);

}

printf ("\n");

}

return 0;

 想請問為什麼TLE呢....?

#7416: Re:一直TLE


passerr (20130326 0340 48)


或許與你減48有關係

 

EOF = -1

所以,試試看

 while ((a[2]=getchar ()-48)!=-49){   //輸入9個數

#7428: Re:一直TLE


mrsasuke (極限)


或許與你減48有關係

 

EOF = -1

所以,試試看

 while ((a[2]=getchar ()-48)!=-49){   //輸入9個數


這樣改就答對了!!謝謝^^~