C语言 编程 用函数计算 m!/[n!*(n-m)!]

可以用阶乘函数,那个函数我不会用。
也可以用for循环

1、从桌面打开下载好的编程软件。

2、打开编程软件后,新建一个任务,点击文件,选择C++ source file, 放在自己喜欢的文件夹下面。

3、输入这段代码,记得代码编译前,先要定义变量。

4、点击如图的两个按钮,左边是complie是编译的意思 ,右边build 是连接的意思。

5、检查完,没有显示error的情况下,最后点击BuildExecute 运行软件。

6、最后一步运行软件后,Debug里面有个exe的可运行程序,就是N的阶乘程序了。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-12
#include <stdio.h>

int f(int m)//这个就是阶乘函数
{
if(m==1||m==0)
return 1;
else
return m*f(m-1);
}
void main()
{
int m,n,result=0;
printf("请输入m n 的值\n");
scanf("%d%d",&m,&n);
if(n<m)
{
printf("输入有误!\n");
}
else
{
result=f(m)/(f(n)*f(n-m));
}
printf("计算结果:%d\n",result);
}
/*由于有阶乘(n-m)!,分析知道:n>=m,故m!/n!肯定为0,因为符号“/"是取整,要么就是wo
理解有误,或者你表达的不够清楚,不过知道怎么做就好了,有问题可以Hi我,呵呵*/本回答被网友采纳
第2个回答  2011-12-28
#include <stdio.h>
#include <math.h>

int main(){
int n,m,n1,m1,nm,result;
printf("Input n and m:\n");
scanf("%d,%d",&n,&m);
n1=times(n);
m1=times(m);
nm=times(n-m);
result=n1/(m1*nm);
printf("n = %d\n",n);
printf("m = %d\n",m);
printf("Result = %d\n",result);
return 0;
}

int times(int n) {
int times=1,i;
for (i=1;i<=n;i++){
times*=i;
}
return times;
}

运行结果如下:
Input n and m:
5,2
n = 5
m = 2
Result = 10

计算的是n!/[m!*(n-m)!]
第3个回答  2011-12-28
没有现成的阶乘函数,阶乘函数也要你自己定。

#include "stdio.h"

unsigned long jc(unsigned long n)
{
unsigned long t=1;
for(unsigned i=2;i<=n;i++)
t*=i;
return t;
}

unsigned long f(unsigned long n,unsigned long m)
{
return jc(n)/jc(m)/jc(n-m);
}

void main()
{
unsigned long n,m;
scanf("%ld%ld",&n,&m);
printf("%ld\n",f(n,m));
}本回答被提问者采纳
第4个回答  2011-12-28
// recursive.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

double Recursive(int x) ;

int _tmain(int argc, _TCHAR* argv[])
{
int m, n ;
m = 2 ;
n = 5 ;
double Result = Recursive(m) / (Recursive(n) * Recursive(n - m)) ;
printf("result is %lf\n", Result) ;

system("pause") ;
return 0;
}

double Recursive(int x)
{
if (x == 0)
{
return 1 ;
}
else
{
return x * Recursive(x - 1) ;
}
}
相似回答