p[1]
부터 p[4]
까지는 문제에 나온 초기값을 넣어주고,
p[5]
부터는 p[0]
이 0이라는 가정 하에 규칙을 따르므로 for문으로 처리한다.
n을 입력받을 때마다 계산하기보다 미리 값을 넣어두는 쪽을 택했다.
#include <iostream>
using namespace std;
long long p[101] = { 0, };
int main() {
int t, n;
cin >> t;
p[1] = 1;
p[2] = 1;
p[3] = 1;
p[4] = 2;
for (int i = 5; i <= 100; i++) {
p[i] = p[i - 5] + p[i - 1];
}
for (int i = 1; i <= t; i++) {
cin >> n;
cout << p[n] << "\n";
}
return 0;
}
배열 p를 int
가 아닌 long long
으로 선언하자