C++ 关于n!

来源:百度知道 编辑:UC知道 时间:2024/06/02 12:53:06
就是编一个程序 能够实现m*(m-1)*(m-2)...*n 这个过程 最好是用递归的方式
就是如果赋值的话 9 和6分别赋值给m和n 就会得出9*8*7*6的效果

//按照你的要求写的关于排列数的递归求法(有些编译环境中不支持中文,请自己将输出部分更改)

#include<iostream>
using namespace std;

int fun(int m,int n)
{
if(m==n)return n;
return m*fun(m-1,n);
}

int main()
{
int m,n;
cout<<"求表达式:m*(m-1)*(m-2)*...*n的值\n"<<"请输入m和n:"<<endl;
cin>>m>>n;
cout<<fun(m,n)<<endl;
return 0;
}

就是求n的阶乘吧。这个是递归的代码
#include <iostream>
#include <string>
using namespace std;

int f(int n)
{
if (n==1)
{
return 1;
}
else return n*f(n-1);

}

int main()
{
int a=0;
cout<<"输入一个数:";
cin>>a;
cout<<"阶乘结果是:";
cout<<f(a)<<endl;
return 0;

}

#include <stdio.h>
int fac(int m,int n){
static int res=1;
if (m==n)
{
r