c++编写计算组合数的函数cmn(int n,int m),实现如下杨辉三角形的输出

c++ 编写计算组合数的函数cmn(int n,int m),实现如下杨辉三角形的输出.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1

#include "stdio.h"
int factorial(int t) //阶乘计算函数 ,返回t的阶乘
{
if(t==0||t==1) return 1;
return t*factorial(t-1);
}
int cmn(int n,int m)
{
return factorial(n)/(factorial(m)*factorial(n-m)) ;//组合数计算公式
}
void YangHuiTriAngOut(int n)

{
int i,j;
printf("\n");
for(i=0;i<n;i++)//共有n行输出
{
for(j=0;j<=i;j++)//每行输出j个数据
{
printf("%d\t", cmn(i,j) );
}
printf("\n");
}
}
void main(void)
{
YangHuiTriAngOut(7);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-07
#include <iostream>
#include <iomanip>
using namespace std;

int cmn(int n,int m){
if(m==1)
return 1;
else if(n==1)
return 0;
else
return cmn(n-1,m-1)+cmn(n-1,m);
}

int main(){
int n,m,r;
cout <<"输入行数:";
cin >>r;
for(n=1; n<=r; n++){
for(m=1; m<=n; m++)
cout <<setw(6) <<cmn(n,m);
cout <<endl;
}
return 0;
}本回答被网友采纳
相似回答