더북(TheBook)

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 루프 두 개를 사용하도록 변경하라.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.