Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def long_division(dividend, divider):
- # INSERT CODE HERE
- if divider > dividend:
- return str(dividend) + '|' + str(divider) + '\n' + str(dividend) + '|' + '0'
- if divider == 1:
- return str(dividend) + '|' + str(divider) + '\n' + str(dividend) + '|' + str(dividend) + '\n' + ' '*(len((str(dividend))) - 1) + '0'
- quotient = str(dividend // divider)
- str_dividend = str(dividend)
- iterator = iter(quotient)
- divs = []
- reminders = []
- curr_number = str_dividend[0]
- temp_value = int(next(iterator)) * divider
- for digit_number in range(1, len(str_dividend) + 1):
- if curr_number[0] == ' ':
- curr_number = '0'
- if int(curr_number) < temp_value and digit_number < len(str_dividend):
- curr_number += str_dividend[digit_number]
- continue
- if curr_number[0] == '0':
- curr_number[1:]
- while len(str(curr_number)) < digit_number:
- curr_number = ' ' + str(curr_number)
- divs.append(str(curr_number))
- curr_number = int(curr_number) - temp_value
- if curr_number == 0 and digit_number != len(str_dividend):
- curr_number = ' '
- while len(str(curr_number)) < digit_number:
- curr_number = ' ' + str(curr_number)
- reminders.append(str(curr_number))
- try:
- temp_value = int(next(iterator)) * divider
- except StopIteration:
- break
- line = str_dividend + '|' + str(divider) + '\n'
- while len(divs[0]) < len(str_dividend):
- divs[0] += ' '
- line += divs[0] + '|' + quotient + '\n'
- for index in range(1, len(divs)):
- c = divs[index]
- line += c + '\n'
- line += reminders[len(divs) - 1]
- return line[:-1] if dividend < divider else line
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement