Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def choice():
- print('''\n0. Сложение
- 1. Вычитание''')
- choice = int(input('Выберите операцию (0/1): '))
- if choice:
- return 'substraction'
- else:
- return 'addition'
- def numbers_input():
- first = input('Введите первое число: ')
- second = input('Введите второе число: ')
- if len(first) > 8 or len(second) > 8:
- return 'stack overflow'
- first, second = first.zfill(8), second.zfill(8)
- return first, second
- def addition(first, second):
- fir = list(first)
- sec = list(second)
- overflow = False #переменная, отвечающая за переполнение ячейки
- for i in range(len(fir) - 1, -1, -1):
- if fir[i] == '0':
- if sec[i] == '0':
- if overflow:
- fir[i] = '1'
- overflow = False
- else:
- continue
- elif sec[i] == '1':
- if overflow:
- fir[i] = '0'
- overflow = True
- else:
- fir[i] = '1'
- elif fir[i] == '1':
- if sec[i] == '0':
- if overflow:
- fir[i] = '0'
- overflow = True
- else:
- continue
- elif sec[i] == '1':
- if i == 0:
- return 'overflow'
- if overflow:
- fir[i] = '1'
- overflow = True
- else:
- fir[i] = '0'
- overflow = True
- return fir
- def substraction(first, second):
- fir = list(first)
- sec = list(second)
- shortage = False #переменная, отвечающая за заем из старшего разряда
- for i in range(len(fir) - 1, -1, -1):
- if fir[i] == '0':
- if sec[i] == '0':
- continue
- elif sec[i] == '1':
- if shortage:
- shortage = True
- fir[i] = 1
- else:
- shortage = True
- fir[i] = 1
- elif fir[i] == '1':
- if shortage:
- fir[i] = '0'
- if sec[i] == '0':
- shortage = False
- continue
- elif sec[i] == '1':
- fir[i] = '1'
- shortage = True
- else:
- if sec[i] == '0':
- continue
- elif sec[i] == '1':
- fir[i] = '0'
- return fir
- def run():
- numbers = numbers_input()
- if len(numbers) == 1:
- print('\nstack overflow')
- else:
- first, second = numbers
- if choice() == 'addition':
- summ = addition(first, second)
- if summ == 'overflow':
- print('\nstack overflow')
- else:
- print(*summ, sep='')
- else:
- subs = substraction(first, second)
- print(*subs, sep='')
- if __name__ == "__main__":
- run()
Add Comment
Please, Sign In to add comment