반응형
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int prev1 = 1, prev2 = 1, cur;
for (int i = 2; i <= n; i++)
{
cur = prev1 + prev2;
prev2 = prev1;
prev1 = cur;
}
cout << cur;
return 0;
}
f 0 = 1이고 f 1 = 1입니다.
그래서 처음에 prev1, prev2를 정의를 해준 것입니다.
즉 주어진 코드는 피보나치 수열을 계산하여 n번째 항을 출력하는 프로그램입니다. 첫 번째 항과 두 번째 항은 모두 1입니다. 세 번째 항부터는 이전 두 항의 합으로 정의됩니다.
주어진 코드를 활용하여 n 번째 항을 계산합니다.
1. 변수 prev1 과 prev2는 각각 이전 항과 그 전 항을 저장합니다. 처음에는 첫 번째와 두 번째 항을 모두 1로 초기화합니다.
2. 반복문을 통해 세 번째 항부터 n 번째 항까지 계산합니다. 현재 항 cur은 이전 항 prev1과 그 전 항 prev2로 계산됩니다. 현재 항이 계산된 후에는 prev1과 prev2가 갱신되어야합니다.
3. 새로 계산된 cur이 이 다음 반복에서의 prev1이 될 것이고 이전의 prev1이 prev2가 될 것입니다. 그래서 cur = prev1+ prev2로 정의, prev2 = prev1, prev1 = cur로 정의해줍니다.
반복문이 종료되면 cur을 출력해줍니다.
반응형
'IT 프로그래밍 > 객체지향프로그래밍' 카테고리의 다른 글
[C++] static정의 참조 배열에 대한 예시 문구 (0) | 2024.04.17 |
---|---|
객체지향프로그래밍 그룹액티비티 2문제 (0) | 2024.04.16 |
객체지향프로그래밍 그룹 액티비티 5번 문제 해설 (0) | 2024.04.10 |
[C++] N개의 정수 중 K와의 차이가 절대값이 작은 정수 출력 프로그램 (0) | 2024.03.10 |
[C++] 1에서 N 사이의 정수들을 모두 종이에 적었을 때 0의 개수 출력 (0) | 2024.03.10 |