문제
정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.
- 1+1+1+1
- 1+1+2
- 1+2+1
- 2+1+1
- 2+2
- 1+3
- 3+1
정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.
출력
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
예제 입력 1
3
4
7
10
예제 출력 1
7
44
274
출처
ICPC > Regionals > Asia Pacific > Korea > Asia Regional - Taejon 2001 PC번
- 문제를 번역한 사람: baekjoon
- 문제의 오타를 찾은 사람: standardraccoon, wjrqur1200
출처
ICPC > Regionals > Asia Pacific > Korea > Asia Regional - Taejon 2001 PC번
- 문제를 번역한 사람: baekjoon
- 문제의 오타를 찾은 사람: standardraccoon, wjrqur1200
#include <iostream>
using namespace std;
int GetResult(int N)
{
if (N == 0)
return 1;
if (N < 0)
return 0;
return GetResult(N - 1) + GetResult(N - 2) + GetResult(N - 3);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int N,input;
cin >> N;
while (N-- > 0)
{
cin >> input;
if (input > 0)
{
cout << GetResult(input) << "\n";
}
else
cout << "0\n";
}
return 0;
}
728x90
반응형
'알고리즘 > solved.ac' 카테고리의 다른 글
[class3] (백준 9461) 파도반 수열 (0) | 2021.11.07 |
---|---|
[class3] (백준 9375) 패션왕 신해빈 (0) | 2021.11.06 |
[class3] (백준 2630) 색종이 만들기 (0) | 2021.11.04 |
[class3] (백준 2606) 바이러스 (0) | 2021.11.03 |
[class3] (백준 2579) 계단오르기 (0) | 2021.11.02 |