问题标题 C++ 题目求解,需要专业回答,回答前请认真考虑下 答案正确与否。 避免彼此不必要的麻烦。 期望金额80金币 已托管0金币 提问人:彭*业 提问时间:2019-11-27
问题详情

#include <iostream>

using namespace std;

 

int main()

{

double n=5, r=3;

double t = n - r;

double result;

double result1 = 1;

double result2 = 1;

double result3 = 1;

for (; n > 0; n--) {

result1 = result1 * n;

}

 

for (; r > 0; r--) {

result2 = result2 * r;

}

 

for (; t > 0; t--) {

result3 = result3 * t;

}

 

result = result1 / (result2 * result3);

 

 

cout<<"result = "<<result <<  endl;

}

 

1. 上面这段代码的功能是什么?

2. 尝试阐述如何对该算法进行优化。(无需写出代码,文字说明即可)

 


特别要求 需要专业回答,回答前请认真考虑下 答案正确与否。 避免彼此不必要的麻烦。
其他设置 期望完成时间:2019-11-29
管理员补充 收藏 我来回答
以下部分为回答内容,共3个回答
1楼

这是计算组合数的一段代码,即C(n,r)=n!/(r! * (n-r)!).

...展开更多
......此处隐藏剩余部分193字,需支付80金币方可查看...... 购买回答
2楼

上面这段代码的功能是什么?排列组合 C(n,m)=n!/[m!(n-m)!]

 尝试阐述如何对该算法进行优化。

...展开更多
......此处隐藏剩余部分650字,需支付100金币方可查看...... 购买回答
3楼

1.此代码功能表示求组合C(n,r)=n!/(r!*(n-r)!);

2.可通过递归优化算法:C(n,r)=C(n-1,r-1)+C(n-1,r);

...展开更多
......此处隐藏剩余部分190字,需支付100金币方可查看...... 购买回答