본문 바로가기
IT/[Everyday]Coding

[이항계수]경우의 수 구하는 프로그램

by Jang HyunWoong 2014. 12. 19.

n개에서 m개를 뽑는 경우의 수 구하는 프로그램

(단점 수가 커지면 오류가 난다 ex 50C20 같은 경우)

 

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int numOfCross(int n, int m)
  6. {
  7. int denom=1, codenom=1;
  8. int result;
  9.  
  10. if(n<m){
  11. cout << "n이 m보다 커야함" << endl;
  12. return 0;
  13. }else{
  14. for(m; m>=1; m--){
  15. denom *= n--;
  16. codenom *= m;
  17. }
  18. result = denom/codenom;
  19. return result;
  20. }
  21. }
  22. int main()
  23. {
  24. int n, m, check;
  25. int NOC;
  26. cout<< "n개에서 m개를 뽑는 방법(경우의 수)" << endl;
  27. do{
  28. cout << "시작(1), 끝내기(2)" << endl;
  29. cin >> check;
  30. if(check==1){
  31. cout << "frist number : ";
  32. cin >> n;
  33. cout << "second : ";
  34. cin >> m;
  35. NOC = numOfCross(n, m);
  36. cout << "result is " << NOC << endl;
  37. }else
  38. break;
  39. }while(check==1);
  40. return 0;
  41. }


반응형

'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