Ste*_*024 4 c++ stack-overflow recursion factorial compiler-warnings
对于上课我有一个任务:
写C++程序,将输出的不同方式,你可以挑选的数量
k
对象形成了一套的n
对象(包括n
和k
应为正整数).该数字由以下公式给出:
C(n, k) = n!/(k! * (n - k)!)
您的程序应该使用两个值返回函数.第一个应该被调用
factorial
,应该返回n!
.应该调用第二个函数,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;
}
Run Code Online (Sandbox Code Playgroud)
......但我不断收到错误,说;
"'factorial':在所有控制路径上递归,函数将导致运行时堆栈溢出;"
如果有人可以帮助我,我已经在这工作了大约一个小时,我很难过!
归档时间: |
|
查看次数: |
8976 次 |
最近记录: |