小明為了要保證資料傳輸的隱密性,為檔案設置了一個加密金鑰,並且將金鑰藏進了一個檔案裡。收到檔案的小風得知要解譯出他所使用的加密金鑰,必須將檔案裡所有不含非數字的單字找出,加起來就是加密金鑰。可是,要求出這個金鑰,如果自己慢慢加實在是太慢了,所以請你寫一個程式來幫助他吧!
輸入說明 :
每組測資有一行,內含多個單字,每個單字之間會以空格作分隔(每一行的前後都有可能有空格,且分隔單字的空格可能不只一個)。
輸出說明 :
請求出所有僅含數字的單字,並且加總後輸出。這些數字的總和不會超過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
沒有留言:
張貼留言