0
나는 정규 정수로 동작하는 UnboundInteger 클래스를 구현하고 있습니다. 지원되는 크기 인 에 대해 양측에 제한이없는 임의의 큰 정수를 처리 할 수 있습니다. 여기 언 바운드 정수 클래스
불행하게도 내가 밖으로 여기 오류In [40]: reload(test)
Out[40]: <module 'test' from 'test.py'>
In [41]: a = test.UnboundInteger(1000000000000)
In [42]: b = test.UnboundInteger(20000000000)
In [43]: a + b
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-43-f96fb8f649b6> in <module>()
----> 1 a + b
/home/neel101/test.py in __add__(self, other)
17 temp = '0' + temp
18 temp = temp[-1]
---> 19 carry = temp[-2]
20 result = temp + result
21
IndexError: string index out of range
또는이 문제에 대한 더 나은 방법을입니다 제발 도와주세요 오류를 디버깅 할 수없는 나는 내 코드
class UnboundInteger(object):
def __init__(self, integer):
self.integer = str(integer)
def __add__(self, other):
carry = '0'
temp = '0'
result = ''
if (len(self.integer) > len(other.integer)):
num_of_zeros = len(self.integer) - len(other.integer)
other.integer = '0' * num_of_zeros + other.integer
elif (len(self.integer < other.integer)):
num_of_zeros = len(other.integer) - len(self.integer)
self.integer = '0' * num_of_zeros + self.integer
for i in range(1, len(self.integer)+1):
temp = str(int(self.integer[-i]) + int(other.integer[-i]) + int(carry))
temp = '0' + temp
temp = temp[-1]
carry = temp[-2]
result = temp + result
return UnboundInteger(result)
@classmethod
def from_int(cls, integer):
'''\
Take in a integer and build the unbound integer object.
'''
ub_integer = cls(integer)
return ub_integer
입니다 . 저에게 알려주세요!
을,이 프로젝트 또는 숙제 _need_합니까? 프로젝트의 경우, 파이썬의'long '타입을 사용하십시오. (보통'int'는 잘 작동 할 것입니다. 필요하면'long'으로 자동 변환됩니다.) ... python3은 더 좋습니다. 'int'는 get-go에서 임의의 크기를가집니다. – mgilson
이것은 "학문적 인"연습 중 하나 여야합니다 ... –
그래, 그것은 학문적 인 운동입니다! –