杭電OJ——1228 A+B
阿新 • • 發佈:2019-02-16
A + B
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 3 90 96
Source
Recommend JGShining 程式碼如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> int covert(char s[]) { if(!strcmp(s,"zero")) return 0; else if(!strcmp(s,"one")) return 1; else if(!strcmp(s,"two")) return 2; else if(!strcmp(s,"three")) return 3; else if(!strcmp(s,"four")) return 4; else if(!strcmp(s,"five")) return 5; else if(!strcmp(s,"six")) return 6; else if(!strcmp(s,"seven")) return 7; else if(!strcmp(s,"eight")) return 8; else if(!strcmp(s,"nine")) return 9; return 0; } int main() { int a,b; char s[6]; while(1) { for(a=0,scanf("%s",s);s[0]!='+';scanf("%s",s)) a=a*10+covert(s); for(b=0,scanf("%s",s);s[0]!='=';scanf("%s",s)) b=b*10+covert(s); if(a+b==0) return 0; printf("%d\n",a+b); } system("pause"); return 0; }