Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def only_numbers(s):
- n = 0
- d = 1
- for c in s:
- if c.isdigit():
- n += int(c) * d
- d *= 10
- else:
- break
- return n
- def pre_letter_number(c, s):
- n = 0
- d = 1
- for i in range(len(s)):
- if s[i].isdigit():
- n += int(s[i]) * d
- d *= 10
- elif s[i] == '^':
- break
- return n
- def post_letter_number(c, s):
- n = 0
- d = 1
- start = 0
- for i in range(len(s)):
- if s[i] == '^':
- start = 1
- for i in range(start, len(s)):
- if s[i].isdigit():
- n += int(s[i]) * d
- d *= 10
- return n
- def product_contains(c, s):
- for x in s:
- if (x == c):
- return True
- return False
- def polynom(s, x):
- signs = []
- if s[0] != '-':
- signs.append(1)
- for c in s:
- if c == '-':
- signs.append(-1)
- elif c == '+':
- signs.append(1)
- a = s.replace('-', '+').split('+')
- if a[0] == '':
- del a[0]
- sum = []
- for i in range(len(a)):
- if product_contains('x', a[i]):
- for j in range(len(a[i])):
- if product_contains('^', a[i]):
- sum.append((x * pre_letter_number('x', a[i]))**post_letter_number('^', a[i]))
- break
- else:
- sum.append(x * pre_letter_number('x', a[i]))
- break
- else:
- sum.append(only_numbers(a[i]))
- break
- answer = 0
- for i in range(len(sum)):
- answer += sum[i] * signs[i]
- return answer
- s = input()
- print(polynom(s, 3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement