弱智问题
求任意一个数的阶乘,不受类型上限限制,比如500的阶乘,用数组作的
#include<iostream.h>
class go
{
protected:
int j,a[1000],m,k,h,y;
public:
go(int s=0)
{
int b=1;j=1;
for(;b<1000;b++)
a[b]=0;
a[0]=1;
for(m=1;m<=s;m++)
{ for(k=0;k<=(j-1);k++)
{ a[k]=a[k]*m;
for(h=0;h<1000;h++)
{ if(a[h]>=10)
{
a[h+1]=a[h]/10+a[h+1];
a[h]=a[h]%10;
j++;
}
}
}
}
}
void put()
{
for(y=999;a[y]==0;y--);
for(;y>=0;y--)
cout<<a[y];
cout<<endl;
}
};
void main()
{
int number;
cout<<"input:";
cin>>number;
go v(number);
v.put();
}
运算结果不对~无报错