已知计算组合的公式如下,用递归算法写出一个计算组合Cmn的值的函数zh(m,n),并写出主函数调用该函数。

已知计算组合的公式如下,用递归算法写出一个计算组合Cmn的值的函数zh(m,n),并写出主函数调用该函数。

输入
两个整数 m,n(m>=n)

输出
组合值

https://img03.sogoucdn.com/app/a/100520146/e53b9637b7931d9d1206a22a34ba06ed

样例输入
4 2
样例输出
6


#include 
#include 
#include 
#include 
//  拷贝到平台的时候把my_fuction_lib.h注释掉.
//#include "my_fuction_lib.h"

//在此下方插入自定义函数对的声明:

//主函数main
int zh(int m,int n)//m是组合数的下标,n是组合数的上标;(即第一个位置传入下标,第二个位置传入上标)
{
    //从简单的情况判断走:
    if(n == 0)
    {
       //zh(m,n) = 0;//表达式必须是可修改的左值
       return 1;//之歌情况下的直接返回函数值.
    }
    else if(n == 1)
    {
        return m;
    }
    else if(n>m-n)
    {
        return zh(m,m-n);
    }
    else
    {
        return zh(m-1,n-1) + zh(m-1,n);//推到小规模的函数计算,知道结果显然
    }
    
    
}
int main()
{
    //复制模版式删除这个或者再下面一个
    int m,n;
    while( scanf("%d%d",&m,&n) != EOF)
    {
        //zh(m,n);
        printf("%d\n",zh(m,n));
    }
    
    return 0;
} 

你可能感兴趣的:(已知计算组合的公式如下,用递归算法写出一个计算组合Cmn的值的函数zh(m,n),并写出主函数调用该函数。)