杭電 英文 a b 問題

2021-08-17 03:38:58 字數 1291 閱讀 6450

problem description

讀入兩個小於100的正整數a和b,計算a+b.

需要注意的是:a和b的每一位數字由對應的英文單詞給出.

input

測試輸入包含若干測試用例,每個測試用例佔一行,格式為"a + b =",相鄰兩字串有乙個空格間隔.當a和b同時為0時輸入結束,相應的結果不要輸出.

output

對每個測試用例輸出1行,即a+b的值.

sample input

one + two =three four + five six =zero seven + eight nine =zero + zero =

sample output

這個題 其實思路挺簡單的,但是中間細節總是出錯。花了好久才寫出來,看到這道題的正確率心裡哇涼哇涼。整體思路是直接把輸入內容看成乙個整體,然後在進行的分割,分割的重點在於它們每個單詞和單詞之間 或者單詞 和運算子之間都有空格。所以利用這一點,我們用scanf來儲存字串;因為scanf儲存字串時以空格為結束 不接收空格;這樣100以內的求和 最多接收 6個字串;**如下;

#include #includeint main()

;//用0~9的英文單詞 直接給字串陣列賦值;

int b[10]=,p[5];//對應的,再將0~9數字給b陣列,順序要一樣,因為他們的下標在下面會用到。p用來記錄每個字串翻譯過來的數字;

int i=0,j,k=0;

char c[6][7];//用6個字串陣列接收6個字串;

for(k=0;;k++)

}}if(p[0]==0&&p[2]==0&&p[3]==-1)break;//確認終止迴圈的條件,和避免輸入(__ __ + zero 非零數 = )跳出迴圈

if(p[1]==-1)

if(p[1]!=-1)

}return 0;

}

#include #include #includechar num[10][6]= ;

using namespace std;

int ex(char s)

}int main()

while(scanf("%s",s),strcmp(s,"=")!=0)

if(ta==0&&tb==0)

break;

else

printf("%d\n",ta+tb);

}return 0;

}

杭電2524 矩形A B

problem description 給你乙個高為n 寬為m列的網格,計算出這個網格中有多少個矩形,下圖為高為2,寬為4的網格.第一行輸入乙個t,表示有t組資料,然後每行輸入n,m,分別表示網格的高和寬 n 100 m 100 output 每行輸出網格中有多少個矩形.sample input 2...

杭電1229 還是a b

problem description 讀入兩個小於10000的正整數a和b,計算a b。需要注意的是 如果a和b的末尾k 不超過8 位數字相同,請直接輸出 1。input 測試輸入包含若干測試用例,每個測試用例佔一行,格式為 a b k 相鄰兩數字有乙個空格間隔。當a和b同時為0時輸入結束,相應的...

杭電ACM 1230 火星A B

problem description 讀入兩個不超過25位的火星正整數a和b,計算a b。需要注意的是 在火星上,整數不是單一進製的,第n位的進製就是第n個素數。例如 地球上的10進製數2,在火星上記為 1,0 因為火星個位數是2進製的 地球上的10進製數38,在火星上記為 1,1,1,0 因為火...