1.3.20 양의 정수 n
의 이진 표현을 문자열 s
로 변환하는 코드 조각을 작성하라.
정답: [프로그램 1.3.7]을 참조해 다음과 같이 구현할 수 있다.
s = '' v = 1 while v <= n//2: v *= 2 while v > 0: if n < v: s += '0' else: s += '1' n -= v v //= 2
그러나 오른쪽에서부터 처리하면 다음과 같이 간단히 구현할 수 있다.
s = '' while n > 0: s = str(n % 2) + s n //= 2
이 두 코드 모두 자세히 살펴보기 바란다.
1.3.21 for
루프 안에 while
루프를 사용하는 gambler.py
프로그램을 수정해, while
루프 두 개를 사용하거나 for
루프 두 개를 사용하도록 변경하라.