: 문제를 읽어보고 , 맞는지 안맞는지는 모르겠는데,
점화식을 만들어봄.
#include <iostream>
using namespace std;
int main()
{
//d[자릿수][]
// 0이 나오면, 0이 나오든 1이 나오든 관계 없음.
// 뒷자리가 1이 나오면, 다음에는 0이 나와야 함.
// 뒷자리가 0이 나오면, 다음에는 0 , 1 나와야 함.
//d[n][1] += d[n - 1][0]
//d[n][0] += d[n - 1][0] + d[n - 1][1];
// 점화식 : n개의 숫자에서 마지막값 j로 끝날때를 갯수?
// d[1][0] : 없음.
// d[1][1] : 1
// d[2][0] : 1개(10) -> d[1][0] + d[1][1]; : 1
// d[2][1] : 없음. -> d[1][0] : 0
// 일단 여기까지는 맞음.
// d[3][0] : d[2][0] + d[2][1] : 1 + 0 -> 1 ?
// d[3][1] : d[2][0] : 1?
int n;
cin >> n;
int d[91][2]{0,};
d[1][0] = 0;
d[1][1] = 1;
for(int i = 2; i <= n; ++i)
{
d[i][1] += d[i - 1][0];
d[i][0] += d[i - 1][0] + d[i - 1][1];
}
int res = d[n][0] + d[n][1];
cout << res;
//4자리일 경우에는 -> 3개??
// 1000 1001 1010
//for(int i = 0; i <= n; ++i)
//{
// cout << d[i][0] << " " << d[i][1] << endl;
//}
//====================
// 문제에서는 n자리 이친수의 개수를 구하는 것임
// 위의 점화식은 n자리에서 뒷자리에 따른 갯수
}
-> but 이것은 문제에서의 원하는 답이 아님...