[4장 연습문제]
함수 - Q1
시선에 따라 문제가 헷갈릴 수도 있는데(저처럼..)아래와 같이 번역하여 이해하는 게 좋은 것 같습니다.
입력 정수 n이하의 피보나치 수열을 구하라 -> 입력 정수n항 이하의 피보나치 수열을 구하라(n=0,1,2 ....)
재귀함수를 쓰려면 초기 종료 조건이 필요한데, 피보나치 수의 정의에 따르면 전 항+ 전전항 숫자의 합이므로 첫번째, 두번째 항은 무조건 0,1로 주어져야 하기 때문에 이를 이용해 종료조건 코드를 작성할 수 있습니다. 전체 코드는 간결합니다.
* 3번 째 항의 피보나치 수: 2
파일 읽고 쓰기 - Q1
sample데이터를 텍스트 파일에 미리 만들어 놓고 주어진 힌트 소스코드를 완성하여 프로그램을 작성하는 방식과
sample.txt의 데이터를 input함수로 입력하고 write한 뒤 읽어들이는 식으로 프로그램을 작성할 수 있습니다.
이 문제를 풀기 위해서는 다음 2가지를 이해하고 있어야 합니다.
1. 파일 입출력의 write함수는 데이터를 무조건 문자열(str) 자료형만 사용할 수 있다.
2. 파일 입출력의 read함수로 데이터를 읽어들이기 위해 int로 형변환하여 파일속 숫자를 읽어들여야한다.
(텍스트 파일에 숫자가 저장되어 있지만 실제로는 int형이 아닌 문자열 자료형으로 입력되었기 때문입니다.)
1. 정답 코드(sample.txt에 데이터를 미리 넣어둔 뒤 read->write하는 방식)
13행에서 문자열로 형변환하여 데이터를 write해야합니다.
만약 13행을 아래 처럼 작성하면 write함수는 문자열만 가능하다고 오류가 뜹니다.
2. 응용 코드(샘플 데이터를 write하여 넣어둔 뒤 read->write하는 방식)
4행에서 '\n'을 넣어주지 않으면 sample.txt에 데이터가 한 줄로 저장이 되어버립니다.