python有毒……慎用
原题:
ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及+、-、=这三个数学符号(当然,符号“-”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。
你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。
神奇的python黑科技,三行解一元一次方程:
```python
def solve(eq,var='x'):
eq1 = eq.replace("=","-(")+")"
c = eval(eq1,{var:1j})
return -c.real/c.imag
```
eval太强了
因为题目限制,还需要进行其他操作,记录python操作:
强制给a保留三位小数,格式化:"%.3f" % a
(使用round函数会自动省略多余的0
python的str不可修改,使用replace函数
注意eval的时候要进行运算符处理(^换成\*\*,3a换成3\*a之类的
代码:
```python
def solve(eq,var='x'):
eq1 = eq.replace("=","-(")+")"
c = eval(eq1,{var:1j})
return -c.real/c.imag
if __name__ == "__main__":
s = raw_input()
b = 'x'
for i in range(len(s)):
if s[i] >= 'a' and s[i] <= 'z':
b = s[i]
break
s = s.replace(b, 'x')
for i in range(10):
s = s.replace(str(i)+"x",str(i)+"*x")
print b + '=' + str("%.3f" % round(solve(s), 3))
```