#7409: 一直TLE


mrsasuke (極限)

學校 : 不指定學校
編號 : 28000
來源 : [111.253.170.243]
最後登入時間 :
2015-08-04 16:42:30
a054. 電話客服中心 -- 板橋高中教學題 | From: [140.113.68.109] | 發表日期 : 2013-01-21 23:40

程式碼如下:

#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)

學校 : 不指定學校
編號 : 8516
來源 : [125.224.93.117]
最後登入時間 :
2024-09-05 12:09:52
a054. 電話客服中心 -- 板橋高中教學題 | From: [125.231.36.106] | 發表日期 : 2013-01-23 23:29

或許與你減48有關係

 

EOF = -1

所以,試試看

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

 
#7428: Re:一直TLE


mrsasuke (極限)

學校 : 不指定學校
編號 : 28000
來源 : [111.253.170.243]
最後登入時間 :
2015-08-04 16:42:30
a054. 電話客服中心 -- 板橋高中教學題 | From: [140.113.68.109] | 發表日期 : 2013-01-26 21:05

或許與你減48有關係

 

EOF = -1

所以,試試看

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


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

 
ZeroJudge Forum