EOJ 3186 A+B

EOJ 3186 A+B

读入两个小于100的非负整数A和B,计算A+B。

需要注意的是:A和B的每一位数字由对应的英文单词给出。

输入格式

第 1 行:整数 T (1≤T≤10) 为测试数据组数。

第 2 ~ T+1 行:每个问题输入一行,格式为:A + B =,相邻两字符串之间用一个空格间隔。

输出格式

对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0: 等),然后对应每个问题在一行中输出A+B的值。

input

3
three four + five six =
zero seven + eight nine =
zero + zero =

output

case #0:
90
case #1:
96
case #2:
0

提示

数字 0-9 的英文单词为:

zero,one,two,three,four,five,six,seven,eight,nine

用python写的,非常简便:

def f(s):
    if s=="zero":
        return '0'
    elif s=="one":
        return '1'
    elif s=="two":
        return '2'
    elif s=="three":
        return '3'
    elif s=="four":
        return '4'
    elif s=="five":
        return '5'
    elif s=="six":
        return  '6'
    elif s=="seven":
        return '7'
    elif s=="eight":
        return '8'
    elif s=="nine":
        return  '9'
t=int(input())
for i in range(0,t):
    print("case #",i,":",sep='')
    s=input()
    l=s.split(" ")
    s1=''
    s2=''
    for i in range(0,len(l)):
        if l[i]=='+':
            u=i
    for i in range(0, len(l)):
        s3=l[i]
        if i<u:
            s1+=str(f(s3))
        elif i>u and s3!='=':
            s2+=str(f(s3))
    print(int(s1)+int(s2))

你可能感兴趣的:(EOJ,字符串)