처음에는 안됐는데 문제는 overflow였다.

모든 걸 long long으로 바꾸니 해결됐다.

#include <iostream>

using namespace std;

int main() {
	int T;
	cin >> T;
	if (T < 1 || T>1000) {
		return 0;
	}
	int *values = new int[T];
	for (int i = 0; i < T; i++) {
		cin >> values[i];
		if (values[i] < 1 || values[i]>64) {
			return 0;
		}
	}
	for(int i = 0; i<T; i++){
		long long arr[10] = { 1,1,1,1,1,1,1,1,1,1 };
		long long n = values[i];
		
		for (long long i = 0; i < n - 1; i++) {
			for (int j = 1; j < 10; j++) {
				arr[j] = arr[j - 1] + arr[j];
			}
		}
		long long result = 0;
		for (int i = 0; i < 10; i++) {
			result += arr[i];
		}
		cout << result << endl;
	}
}

'컴퓨터 > 문제 풀기' 카테고리의 다른 글

백준 16955번 오목, 이길 수 있을까?  (0) 2019.05.20
10799번 쇠막대기  (0) 2019.05.13
2413번 비슷한 순열  (1) 2019.05.13
2309번 일곱 난쟁이  (0) 2019.05.13
백준 1780번 종이의 개수  (0) 2019.05.13

+ Recent posts