forked from Olenek/MSHP_CALC1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path16_Task(long_simple)
105 lines (103 loc) · 3.87 KB
/
16_Task(long_simple)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
def long_simple():
tmp = 0
a = input("Введите первое число: ")
b = input("Введите второе число: ")
c = input("Введите операцию: ")
if a[0] == '-':
a = list(map(int, list(a[1:])))
for i in range(len(a)):
a[i] = -a[i]
else:
a = list(map(int, list(a)))
if b[0] == '-':
b = list(map(int, list(b[1:])))
for i in range(len(b)):
b[i] = -b[i]
else:
b = list(map(int, list(b)))
if c == '+':
if len(a) >= len(b):
for i in range(len(b)):
if a[len(a)-1-i] + b[len(b)-1-i] >= 10:
a[len(a)-1-i] += (b[len(b)-1-i] - 10)
a[len(a)-2-i] += 1
j = i
while a[len(a)-j-2] >= 10:
if len(a)-j-2 == 0:
break
else:
a[len(a) - j - 2] -= 10
a[len(a) - j - 3] += 1
j += 1
if a[len(a)-1-i] + b[len(b)-1-i] < 0:
a[len(a)-1-i] += (b[len(b)-1-i] + 10)
a[len(a)-2-i] -= 1
j = i
while a[len(a)-j-2] < 0:
if len(a) - j - 2 == 0:
break
else:
a[len(a) - j - 2] += 10
a[len(a) - j - 3] -= 1
j += 1
else:
a[len(a)-1-i] += b[len(b)-1-i]
if tmp == 2:
a[0] = -a[0]
for i in range(len(a)):
if not (a[i] == 0 and i == 0):
print(a[i], end='')
else:
for i in range(len(a)):
if b[len(b)-1-i] + a[len(a)-1-i] >= 10:
b[len(b)-1-i] += (a[len(a)-1-i] - 10)
b[len(b)-2-i] += 1
j = i
while b[len(b) - j - 2] >= 10:
if len(b) - j - 2 == 0:
break
else:
b[len(b) - j - 2] -= 10
b[len(b) - j - 3] += 1
j += 1
if b[len(b)-1-i] + a[len(a)-1-i] < 0:
b[len(b)-1-i] += (a[len(a)-1-i] + 10)
b[len(b)-2-i] -= 1
j = i
while b[len(b)-j-2] < 0:
if len(b) - j - 2 == 0:
break
else:
b[len(b) - j - 2] += 10
b[len(b) - j - 3] -= 1
j += 1
else:
b[len(b)-1-i] += a[len(a)-1-i]
for i in range(len(b)):
if not (b[i] == 0 and i == 0):
print(b[i], end='')
elif c == '-':
i = 0
if len(a) >= len(b):
for i in range(len(b)):
if a[len(a)-1-i] < b[len(b)-1-i]:
a[len(a)-1-i] -= (b[len(b)-1-i] - 10)
a[len(a)-2-i] -= 1
else:
a[len(a)-1-i] -= b[len(b)-1-i]
while a[i] == 0:
i += 1
for j in range(i, len(a)):
print(a[j], end='')
else:
for i in range(len(a)):
if b[len(b)-1-i] < a[len(a)-1-i]:
b[len(b)-1-i] -= (a[len(a)-1-i] - 10)
b[len(b)-2-i] -= 1
else:
b[len(b)-1-i] -= a[len(a)-1-i]
while b[i] == 0:
i += 1
for j in range(i, len(b)):
print(b[j], end='')
long_simple()