1118 如需挪车请致电
分数 20
全屏浏览
切换布局
作者 陈越
单位 浙江大学
上图转自新浪微博。车主用一系列简单计算给出了自己的电话号码,即:
2/2=1、3+2=5、9=3、9=3、0%=0、叁=3、5−2=3、9/3=3、1×3=3、23=8、8/2=4,最后得到的电话号码就是 153 3033 3384。
本题就请你写个程序自动完成电话号码的转换,以帮助那些不会计算的人。
输入格式:
输入用 11 行依次给出 11 位数字的计算公式,每个公式占一行。这里仅考虑以下几种运算:加(+
)、减(-
)、乘(*
)、除(/
)、取余(%
,注意这不是上图中的百分比)、开平方根号(sqrt
)、指数(^
)和文字(即 0 到 9 的全小写汉语拼音,如 ling
表示 0)。运算符与运算数之间无空格,运算数保证是不超过 1000 的非负整数。题目保证每个计算至多只有 1 个运算符,结果都是 1 位整数。
输出格式:
在一行中给出电话号码,数字间不要空格。
输入样例:
2/2
3+2
sqrt9
sqrt9
6%2
san
5-2
9/3
1*3
2^3
8/2
输出样例:
15330333384
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
代码:
ls = []
for i in range(11):
ch = str(input())
if '/' in ch:
ch = ch.split('/')
n = int(ch[0])/int(ch[1])
ls.append(str(abs(int(n))))
elif '+' in ch:
ch = ch.split('+')
n = int(ch[0])+int(ch[1])
ls.append(str(abs(int(n))))
elif '-' in ch:
ch = ch.split('-')
n = int(ch[0])-int(ch[1])
ls.append(str(abs(int(n))))
elif '*' in ch:
ch = ch.split('*')
n = int(ch[0])*int(ch[1])
ls.append(str(abs(int(n))))
elif '%' in ch:
ch = ch.split('%')
n = int(ch[0])%int(ch[1])
ls.append(str(abs(int(n))))
elif 'sqrt' in ch:
ch = ch.split('sqrt')
n = int(ch[1])**(1/2)
ls.append(str(abs(int(n))))
elif '^' in ch:
ch = ch.split('^')
n = int(ch[0])**int(ch[1])
ls.append(str(abs(int(n))))
elif 'ling' in ch:
ls.append('0')
elif 'yi' in ch:
ls.append('1')
elif 'er' in ch:
ls.append('2')
elif 'san' in ch:
ls.append('3')
elif 'si' in ch:
ls.append('4')
elif 'wu' in ch:
ls.append('5')
elif 'liu' in ch:
ls.append('6')
elif 'qi' in ch:
ls.append('7')
elif 'ba' in ch:
ls.append('8')
elif 'jiu' in ch:
ls.append('9')
elif '1' == ch:
ls.append('1')
elif '2' == ch:
ls.append('2')
elif '3' == ch:
ls.append('3')
elif '4' == ch:
ls.append('4')
elif '5' == ch:
ls.append('5')
elif '6' == ch:
ls.append('6')
elif '7' == ch:
ls.append('7')
elif '8' == ch:
ls.append('8')
elif '9' == ch:
ls.append('9')
elif '0' == ch:
ls.append('0')
print(''.join(ls))