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로 다시 형변환 하여 해결
숫자가 큰 팩토리얼 문제에 유용할 듯
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 백준 25192 인사성 밝은 곰곰이 (0) | 2025.01.16 |
---|---|
C++ 알고리즘 - 백준 1037 약수 (0) | 2025.01.16 |
C++ 알고리즘 - 24511 queuestack (0) | 2025.01.14 |
C++ 알고리즘 - 백준 2346 풍선 터뜨리기 (0) | 2025.01.12 |
C++ 알고리즘 - 백준 28279 덱 2 (0) | 2025.01.12 |