#include "stdafx.h"
#include "iostream.h"
//int factorial(int n,int a[1000])//刚开始的时候想返回一个数组,但是程序出错,后来加了一个循环,在函数内输出,就没事了,但是不是输出数组
void factorial(int n)
{
int a[1000]={1,0};//a is the result
//a[0]=1;
//a[1]=0;
int m=0;//m is the bit number
//刚开始的时候,设置m=1,但是多出来一位,后来是因为理解错了。for(;c;c/=10)会解决c不为零的情况的
for(;n;n--)
{
int c=0;//c is
for(int i=0;i<=m;i++)
{
c+=a[i]*n;
a[i]=c%10;
c/=10;
}
for(;c;c/=10)
{
a[++m]=c%10;
}
}
for(int i=m;i>=0;i--)
{
cout<<a[i];
}
// return a;
}
int main(int argc, char* argv[])
{
int n;
//int a[1000];
cout<<"Please put in the n:";
cin>>n;
//cout<<"the factorial of n is:"<<factorial(n)<<endl;
factorial(n);
cout<<endl;
return 0;
}
原文地址:http://blog.csdn.net/wuzhekai1985/article/details/6845868
什么都不说了,直接上程序吧。写的很挫,请见谅~~~