1118 如需挪车请致电

这篇文章介绍了一个编程问题,要求设计一个程序,根据给定的含有加减乘除等运算的公式,自动转换成电话号码。程序通过解析输入的运算表达式并执行计算,得出最终的电话号码15330333384。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1118 如需挪车请致电

分数 20

全屏浏览

切换布局

作者 陈越

单位 浙江大学

phone.jpg

上图转自新浪微博。车主用一系列简单计算给出了自己的电话号码,即:

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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值