我看了半天也没看懂,郁闷.只好自已经重写一个.
#include
void fact(int *s, int n)
{
int i = 1;
int j = 1;
int up = 0;
for (j=1; j<=n; j++)
{
for (i=0; i<2*n; i++)
{
s [i] *= j;
}
for (i=n*2; i>0; i–)
{
if (s[i]>9)
{
up = s[i] / 10;
s [i] %= 10;
s [i-1] += up;
}
}
}
}
void main()
{
int n = 0;
int i = 0;
int j = 0;
cout << “输入一个正数:” << endl;
cin >> n;
if (n<0)
{
cout << “数值有误!” << endl;
return;
}
else if (n == 0)
{
cout << “0!==1″ << endl;
return;
}
int *s = new int[n*2];
for (i=0; i
{
s[i] =0;
}
s[n*2-1] = 1;
fact(s,n);
for (i=j; i
{
cout << s[i];
}
cout << endl;
}