クラスには、次の課題があります。
k
オブジェクトのセットからオブジェクトを選択できる個別の方法の数を出力する C++ プログラムを作成します (とのn
両方が正の整数である必要があります)。この数は次の式で与えられます。n
k
C(n, k) = n!/(k! * (n - k)!)
プログラムでは、2 つの値を返す関数を使用する必要があります。最初のものを呼び出し
factorial
て、 を返す必要がありn!
ます。2 番目の関数を呼び出して、 と の異なる値についてプログラムを5 回テストしますcombinations
(カウント制御ループ)。n!/(k! * (n - k)!).
n
k
私は解決策を思いつきました:
#include <iostream>
using namespace std;
int factorial(int);
int combination(int, int);
void main(void)
{
int objects, set_number, count;
count = 1;
while(count <= 5)
{
cout << "Please enter in number of objects ";
cin >> objects;
cout << "Please enter in the number of Sets ";
cin >> set_number;
count++;
}
cout << "The Factorial is " << factorial(set_number) << " & the combination is " << combination << endl;
cout << endl;
}
// Factorial
int factorial(int set_number)
{
int cal;
cal = set_number * factorial(set_number - 1);
return cal;
}
// Combination
int combination(int objects, int set_number)
{
int com_total, cal_set, cal_obj, min_sum, cal_min;
cal_set = set_number * factorial(set_number - 1);
cal_obj = objects * factorial(objects - 1);
//n!/(k! * (n - k)!)
min_sum = set_number - objects;
cal_min = min_sum * factorial(min_sum- 1);
com_total = cal_set / (cal_obj * cal_min);
return com_total;
}
...しかし、エラーが発生し続けます。
「'factorial' : すべての制御パスで再帰的、関数はランタイム スタック オーバーフローを引き起こします。」
誰かが私を助けることができれば、私はこれに約1時間取り組んでいて、困惑しています!