더북(TheBook)

1.3.10 숫자 n = 2, 4, 8, 16, 32, 64,..., 2048에 대해 log2n, n, n logen, n2, n3, 2n을 표 형태로 출력하는 프로그램 functiongrowth.py를 작성하라. 탭(\t) 문자를 이용하면 세로로 줄을 맞출 수 있다.

 

1.3.11 다음 코드를 실행한 후의 mn의 값은?

n = 123456789
m = 0
while n != 0: 
    m = (10 * m) + (n % 10)
    n //= 10

 

1.3.12 다음 코드는 무엇을 출력하는가?

f = 0
g = 1
for i in range(16):
    f = f + g
    g = f - g
    stdio.writeln(f)

정답: 프로그램 전문가들도 이런 프로그램을 이해하려면 코드를 따라 추적할 수밖에 없다고 한다. 이 프로그램의 실행을 추적해보면 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 134, 233, 377, 610 값을 출력한다. 이 숫자들은 유명한 피보나치 수열의 앞에 나오는 16개의 숫자들이다. 피보나치 수열은 F0 = 0, F1 = 1, n > 1에 대한 Fn = Fn-1 + Fn-2로 정의되며, 다양한 곳에서 볼 수 있다. 피보나치 수열은 수 세기 동안 연구되어 왔으며, 많은 특성이 알려져 있다. 예를 들어 n이 무한히 커질 때 연속된 두 숫자의 비율은 황금비(대략 1.618)에 접근한다.

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