0
点赞
收藏
分享

微信扫一扫

【算法】动态规划之计算二项式系数(C++源码)

_LEON_ 2022-10-18 阅读 211


【算法】动态规划之计算二项式系数(C++源码)

  • ​​一、任务描述​​
  • ​​二、步骤描述​​
  • ​​三、运行结果截图​​
  • ​​四、源代码(C++)​​

一、任务描述

请设计并编程实现一个时间复杂度为O(n2)的算法来计算二项式系数Cnk(k <= n)。其中二项式系数Cnk的求值过程如下:
• Ci0=1 • Cii=1 • Cij= Ci-1j-1 + Ci-1j , 当i>=j时

二、步骤描述

构造二维数组来代替矩阵,通过累加迭代的方式进行求解,输出最终的结果,再输入过程中判断n是否大于k,若是则继续,若否则终止程序输出错误。

三、运行结果截图

【算法】动态规划之计算二项式系数(C++源码)_算法


【算法】动态规划之计算二项式系数(C++源码)_i++_02


【算法】动态规划之计算二项式系数(C++源码)_迭代_03

四、源代码(C++)

#include <iostream>

using namespace std;

#define MAX 100

int binomial(int n, int k)
{
int C[MAX][MAX];
for(int i=0;i<=n;i++)
{
C[i][0]=1;
C[i][i]=1;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
C[i][j]=C[i-1][j-1]+C[i-1][j];
}
}
return C[n][k];
}

int main()
{
int n,k,Result;
cout<<"Please enter a value for n : ";
cin>>n;
cout<<"Please enter a value for k : ";
cin>>k;
if(n<k)
{
cout<<"Please enter the correct values for n and k (n>k) ! "<<endl;
}
else
{
Result=binomial(n,k);
cout<<"The result is : "<<Result<<endl;
}
return 0;
}


举报

相关推荐

0 条评论