小明為了要保證資料傳輸的隱密性,為檔案設置了一個加密金鑰,並且將金鑰藏進了一個檔案裡。收到檔案的小風得知要解譯出他所使用的加密金鑰,必須將檔案裡所有不含非數字的單字找出,加起來就是加密金鑰。可是,要求出這個金鑰,如果自己慢慢加實在是太慢了,所以請你寫一個程式來幫助他吧!
輸入說明 :
每組測資有一行,內含多個單字,每個單字之間會以空格作分隔(每一行的前後都有可能有空格,且分隔單字的空格可能不只一個)。
輸出說明 :
請求出所有僅含數字的單字,並且加總後輸出。這些數字的總和不會超過2的16次方。
範例輸入 :
zerojudge萬歲
1a6f 6 65afd 15s 1sa 12 115
範例輸出 :
0
133
程式碼 :
#include<stdio.h> #include<stdlib.h> #include<string.h> void isword(char word[], int *sum) { int i,len; len = strlen(word); for(i=0; i<len; i++) if('0' > word[i] || word[i] > '9') break; if(i == len) *sum += atoi(word); } int main() { int i, j, k, sum = 0, len, len_word; char s[5000], check, word[1000]; while(gets(s) != NULL) { len = strlen(s); for(i=k=0; i<len; i++) { if(s[i] == ' ') { word[k] = '\0'; isword(word, &sum); k = 0; } else word[k++] = s[i]; } word[k] = '\0'; isword(word, &sum); printf("%d\n",sum); sum = 0; } return 0; }
http://zerojudge.tw/ShowProblem?problemid=d098
沒有留言:
張貼留言