赞
踩
已经火星人使用的运算符号为# $
其与地球人的等价公式如下x#y=2*x+3*y+4
x$y=3*x+y+2
x y
是无符号整数
地球人公式按照c语言规则进行计算
火星人公式中$
符优先级高于#
相同的运算符按从左到右的顺序运算
火星人字符串表达式结尾不带回车换行
输入的字符串说明是 字符串为仅有无符号整数和操作符组成的计算表达式
123#4$5#76$78
#4$5
这种缺少操作数4$5#
这种缺少操作数4#$5
这种缺少操作数4 $5
有空格3+4-5*6/7
有其他操作符12345678987654321$54321
32位整数溢出根据火星人字符串输出计算结果
结尾不带回车换行
7#6$5#12
226
示例
- 7#6$5#12=7#(3*6+5+2)#12
- =7#25#12
- =(2*7+3*25+4)#12
- =93#12
- =2*93+3*12+4
- =226
- # !E:\pythonScript\venv python3
- # -*- coding: utf-8 -*-
- """
- Date: 2023/4/4
- Author: kang
- ep:
- x#y=2*x+3*y+4
- x$y=3*x+y+2
- 7#6$5#12
- """
- import re
-
- mars = input()
- mars_l = list(map(int, re.sub(r"#|\$", " ", mars).split()))
- sign = re.findall(r"#|\$", mars)
- for i in range(len(sign)):
- if sign[i] == "$":
- k = 3 * int(mars_l[i]) + int(mars_l[i + 1]) + 2
- mars_l[i] = k
- mars_l[i + 1] = ""
- new_list = [i for i in mars_l if i != ""]
- earth = 0
- for i in range(len(new_list)):
- if i == 0:
- earth = (2 * new_list[0] + 3 * new_list[1] + 4)
- elif i > 1:
- earth = (2 * earth + 3 * new_list[i] + 4)
- print(earth)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。