n개에서 m개를 뽑는 경우의 수 구하는 프로그램
(단점 수가 커지면 오류가 난다 ex 50C20 같은 경우)
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- int numOfCross(int n, int m)
- {
- int denom=1, codenom=1;
- int result;
- if(n<m){
- cout << "n이 m보다 커야함" << endl;
- return 0;
- }else{
- for(m; m>=1; m--){
- denom *= n--;
- codenom *= m;
- }
- result = denom/codenom;
- return result;
- }
- }
- int main()
- {
- int n, m, check;
- int NOC;
- cout<< "n개에서 m개를 뽑는 방법(경우의 수)" << endl;
- do{
- cout << "시작(1), 끝내기(2)" << endl;
- cin >> check;
- if(check==1){
- cout << "frist number : ";
- cin >> n;
- cout << "second : ";
- cin >> m;
- NOC = numOfCross(n, m);
- cout << "result is " << NOC << endl;
- }else
- break;
- }while(check==1);
- return 0;
- }
반응형
'IT > [Everyday]Coding' 카테고리의 다른 글
파스칼 삼각형 (0) | 2014.12.19 |
---|---|
[피보나치 수열] (0) | 2014.12.19 |
팩토리얼 계산 2가지 방법 (0) | 2014.12.19 |
queue 구현 (0) | 2014.12.19 |
배열 회전 (0) | 2014.12.19 |