ReverseAndAdd ¶
~cpp
import unittest
MAX_VALUE = 4294967295
MAX_COUNT = 1000
class ReverseAndAdd:
def __init__(self):
self.result = ()
def compute(self, n):
count = 0
while n != int(str(n)[::-1]):
n += int(str(n)[::-1])
count+= 1
if self.overBoundary(count, n):
return -1, n
if self.overBoundary(count, n):
return -1, n
return count, n
def overBoundary(self, count, n):
if count >= MAX_COUNT or n > MAX_VALUE:
return True
return False
def printRepeatNum(self, num):
for i in range(0,num*2,2):
print self.result[i], self.result[i+1]
class ReverseAndAddTestCase(unittest.TestCase):
def test1(self):
r = ReverseAndAdd()
self.assertEquals((4,9339), r.compute(195))
self.assertEquals((5,45254), r.compute(265))
self.assertEquals((3,6666), r.compute(750))
self.assertEquals((0,111), r.compute(111))
def main():
r = ReverseAndAdd()
num = input()
for testcase in range(num):
r.result += r.compute(input())
r.printRepeatNum(num)
if __name__ == '__main__':
#unittest.main()
main()
ì“°ë ˆë“œ ¶
ê²°ê³¼ 튜플ì�„ ((4,9339), (5,45254), (3,6666)) 와 ê°™ì�´ 중첩 튜플로 í•˜ë ¤í–ˆìœ¼ë‚˜ ëª»í•˜ê² ë‹¤. -- 재ì„
테스트가 프로그램ì�˜ 최종 테스트 ë°–ì—� 없구나. 바로 ëª¨ë“ ì†ŒìŠ¤ë¥¼ 만들지는 않았ì�„í…Œê³ ... 테스트 ë³´í�ì�„ 줄ì�´ëŠ” 게 좋ì�„ 듯. --재ë�™
reverse 부분ì�€ shellì—�서 약간ì�˜ 테스트를 거쳤습니다. 그래서 따로 테스트 코드를 만들지 않았는ë�° ê·¸ ê²°ê³¼ ë””ìž�ì�¸ì�´ ë‚˜ë¹ ì§„ 것 같습니다. ì•„ì§�ì�€ tddì—� ì�µìˆ™í•˜ì§€ 않아서 ëª¨ë“ í•¨ìˆ˜ë¥¼ 테스트 코드화하면서 ë³´í�ì�„ 줄ì�´ëŠ” í›ˆë ¨ì�„ í•´ì•¼ê² ìŠµë‹ˆë‹¤. -- 재ì„










