上机内容:编一程序,输入m和n的值,求组合数。要求分别定义求阶乘和求组合的函数,求组合数的函数调用求阶乘的函数来实现求解
在main()函数中,负责输入输出及调用求组合数的函数。
求组合数公式:
上机目的:函数初体验
我的程序:
运行结果:
在main()函数中,负责输入输出及调用求组合数的函数。
求组合数公式:
上机目的:函数初体验
我的程序:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 青岛农业大学理信学院
* All rights reserved.
* 文件名称:求组合数.cpp
* 作 者:幻影行者
* 完成日期:2013 年 8 月 2 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:输入m和n的值
* 问题描述:编一程序,输入m和n的值,求组合数。要求分别定义求阶乘和求组合的函数,求组合数的函数调用求阶乘的函数来实现求解,
* 在main()函数中,负责输入输出及调用求组合数的函数。
* 程序输出:输出组合数
* 问题分析:略
* 算法设计:略
*/
#include<iostream>
using namespace std;
long factorial(int); //函数声明部分
long combination(int,int);
int main()
{
int m=1,n=1;
do
{
cout<<"请输入m和n值(m>=n): ";
cin>>m>>n;
cout<<m<<","<<n<<"组合数的值为:"<<combination(m,n)<<endl; //求组合数函数调用
}while(1);
return 0;
}
long factorial(int x) //定义求阶乘的函数
{
long sum=1;
for(int i=1;i<=x;++i)
{
sum*=i;
}
return sum;
}
long combination(int m,int n) //定义求组合数的函数
{
long c;
c=factorial(n)*factorial(m-n); //技巧:只使用c变量,避免大量使用变量,节省内存空间
c=factorial(m)/c;
return c;
}
运行结果: