반응형

https://www.acmicpc.net/problem/15989

 

15989번: 1, 2, 3 더하기 4

정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2

www.acmicpc.net

 

 

[ 문제풀이 ]

 

1. 점화식 arr[ i ] = arr[ i - 3 ] + i / 2 + 1을 통해 arr 배열을 초기화해 줍니다.

 

2. arr[ n ]을 출력합니다.

 

[ 소스코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
 
using namespace std;
 
int T;
int arr[10001];
 
int main()
{
    scanf("%d"&T);
 
    arr[1= 1;
    arr[2= 2;
    arr[3= 3;
 
    for (int i = 4; i <= 10000; i++) {
        arr[i] = arr[i - 3+ i / 2 + 1;
    }
 
    for (int i = 0; i < T; i++) {
        int n;
        scanf("%d"&n);
 
        printf("%d\n", arr[n]);
    }
}
cs
반응형

+ Recent posts