用c++语言求n的阶乘

一定要是c++语言,不是c语言,并能在visual c++6.0上运行的程序

1、打开vs6.0软件,准备一个后缀为cpp的文件,在c++文件中首先写入头文件,定义一个处理阶乘的函数,接着写一个空的main函数

2、接着是阶乘recv函数逻辑,该函数有一个形参n用来接收输入的数。n的阶乘是所有正整数的乘积,这里的处理是sum不断的用递归的方法乘以recv函数的输入数,每次相乘n的值都减1;主函数中用一个cin函数接受用户输入的数,之后调用recv处理阶乘,最后则是输出结果:

3、程序编写完成,最后编译运行,输入任意一个数,最终会打印出计算的结果。以上就是用C++求阶乘的方法:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
#include<iostream.h>
int result=1;
void fac(int n)
{
while(n!=0)
{
result*=n;
n--;
}
}
void main()
{
int a;
cout<<"请输入所要求阶乘的数:"<<endl;
cin>>a;
fac(a);
cout<<a<<"!="<<result<<endl;
}
这个可以,我试过了本回答被网友采纳
第2个回答  2012-02-29
#include<iostream>
#define MAX 1000
using namespace std;
int main()
{
int n;
while(cin>>n&&n>=0)
{
int i,j;
int a[MAX]; //存数运算结果
int p,h; //p存储当前结果的位数,h为进位
a[1]=1;
p=1;
for(i=2;i<=n;i++) //循环与2,3,4.....n相乘
{
for(j=1,h=0;j<=p;j++) //让a[]的每位与i相乘
{
a[j]=a[j]*i+h;
h=a[j]/10;
a[j]=a[j]%10;
}
while(h>0) //如果h不为0
{
a[j]=h%10;
h=h/10;
j++;
}
p=j-1; //将当前的位数赋给p
}
for(i=p;i>=2;i--)
{
cout<<a[i];
}
cout<<a[i]<<endl;
}
return 0;
}追问

运行有错误呢

追答

可以的啊

第3个回答  2012-03-15
//以下为求n的阶乘的程序

#include<iostream>
using namespace std;

int main()
{
int n,result;
cin >> n;
for (result=1, n>1;n--)
{
result=result*n;
}
cout << result;
return 0;
}
第4个回答  2012-03-14
创建递归函数法求一个正整数的阶乘,我喜欢这个方法,简单明了

#include <iostream>
using namespace std;
int f (int x)
{
if (x<1) return 0;
else if (x==1) return 1;
else return x*f(x-1);
}
int main()
{
cout<<"请输入一个正整数:";
int x;
cin>>x;
cout<<f(x)<<endl;
}