더하기 싸이클
a=list(input())
count=0
current=a[0]
last=a[1]
while current != int(a[0]) or last != int(a[1]):
tmp = int(last)
last = int(current) + int(last)
if last > 9:
last = last%10
current = tmp
count += 1
print(current,last);
print(count);
런타임 에러남. 백준은 형변환을 여러번하면 런타임에러가 나는듯. 근데 그보다 나이브하지 않은 알고리즘을 짜고싶다.
#해답
a=int(input())
count=1
if a<10:
A = a
B = 0
else:
A = a/10
B = a%10
current=B
last=A+current
while current != A or last != B:
tmp = last
last = current + last
if last > 9:
last = last%10
current = tmp
count += 1
print(count);
여전히 나이브하지만 형변환은 1번만 일어난다. list로 인자를 빼오던것을 나눗셈으로 대체했다.
python3에서 34/10
이 3.4
가나온다는 사실에 충격을 받았다.