알고리즘

C++ 알고리즘 - 백준 1010 다리 놓기

마루설아 2025. 1. 14. 23:28

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

 

#include <bits/stdc++.h>
#define endl "\n"

using namespace std;

void CPP_INIT() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
}

int main(void) {
	CPP_INIT();

	int in;
	cin >> in;

	for (int i = 0; i < in; i++) {
		double input1;
		double input2;
		cin >> input1 >> input2;

		double num = input2;
		double num1 = input1;

		if (input1 == 0) {
			cout << 0;
			return 0;
		}

		while (--input1) {
			num--;
			input2 *= num;
			input2 /= num1;
			num1--;
		}

		cout << int(round(input2)) << endl;
	}
}

 

double 로 변수를 받고

반올림 (round) 시킨 다음

int로 다시 형변환 하여 해결

 

숫자가 큰 팩토리얼 문제에 유용할 듯