——核心的思路:想要求x的系数 ==> 多项式中,一项是x,其余都是常数 ==> 相当于求除了一项为x,其余常数乘积之和
步骤一:先判断有多少项
步骤二:求出每一项的常数,通过中间的符号判断
步骤三:使用循环,假设 i 为这一项为x,求出它的前缀乘积,和他的后缀乘积,然后相乘再相加
"""
给定一个(x + a)(x + b) ==> a,b是1到9的整数,中间的运算可以是 + 或 -
求x的系数
"""
import sys
Mod = 10007
for line in sys.stdin:
"""
求出当第一个为x,后续为常数,第二个为x,其余为常数...
最后乘积之和就是x的系数
"""
s = line.strip()
if not s:
continue
fact = []
n = len(s) // 5 # 总共有多少个括号
for i in range(n):
sign = s[i*5:i*5+5]
num = int(sign[3])
if sign[2] == '+':
fact.append(num)
else:
fact.append(-num)
if len(fact) == 1:
print(1)
else:
pre = [1] * n # 前缀
after = [1] * n # 后缀
for i in range(n):
if(i == 0):
pre[i] = 1
else:
pre[i] = (pre[i-1] * fact[i-1]) % Mod
for i in range(n-1,-1,-1):
if i == n-1:
after[i] = 1
else:
after[i] = (fact[i+1] * after[i+1]) % Mod
sum = 0
for i in range(n):
sum += (pre[i] * after[i]) % Mod
print(sum % Mod)

京公网安备 11010502036488号