1.3.10 숫자 n = 2, 4, 8, 16, 32, 64,..., 2048에 대해 log2n, n, n logen, n2, n3, 2n을 표 형태로 출력하는 프로그램 functiongrowth.py
를 작성하라. 탭(\t
) 문자를 이용하면 세로로 줄을 맞출 수 있다.
1.3.11 다음 코드를 실행한 후의 m
과 n
의 값은?
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)에 접근한다.