Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. def long_division(dividend, divider):
  2. # INSERT CODE HERE
  3. if divider > dividend:
  4. return str(dividend) + '|' + str(divider) + '\n' + str(dividend) + '|' + '0'
  5. if divider == 1:
  6. return str(dividend) + '|' + str(divider) + '\n' + str(dividend) + '|' + str(dividend) + '\n' + ' '*(len((str(dividend))) - 1) + '0'
  7. quotient = str(dividend // divider)
  8. str_dividend = str(dividend)
  9. iterator = iter(quotient)
  10. divs = []
  11. reminders = []
  12. curr_number = str_dividend[0]
  13. temp_value = int(next(iterator)) * divider
  14. for digit_number in range(1, len(str_dividend) + 1):
  15. if curr_number[0] == ' ':
  16. curr_number = '0'
  17. if int(curr_number) < temp_value and digit_number < len(str_dividend):
  18. curr_number += str_dividend[digit_number]
  19. continue
  20. if curr_number[0] == '0':
  21. curr_number[1:]
  22. while len(str(curr_number)) < digit_number:
  23. curr_number = ' ' + str(curr_number)
  24. divs.append(str(curr_number))
  25. curr_number = int(curr_number) - temp_value
  26. if curr_number == 0 and digit_number != len(str_dividend):
  27. curr_number = ' '
  28. while len(str(curr_number)) < digit_number:
  29. curr_number = ' ' + str(curr_number)
  30. reminders.append(str(curr_number))
  31. try:
  32. temp_value = int(next(iterator)) * divider
  33. except StopIteration:
  34. break
  35. line = str_dividend + '|' + str(divider) + '\n'
  36. while len(divs[0]) < len(str_dividend):
  37. divs[0] += ' '
  38. line += divs[0] + '|' + quotient + '\n'
  39. for index in range(1, len(divs)):
  40. c = divs[index]
  41. line += c + '\n'
  42. line += reminders[len(divs) - 1]
  43. return line[:-1] if dividend < divider else line
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement