阶层.cpp
来自「用数组存储一个大数的阶层。输入一个整数n,先求出n!占用的位数。动态开辟bits」· C++ 代码 · 共 66 行
CPP
66 行
#include <iostream.h>
#include <math.h>
class A
{
private:
int n;
char *p;
int bits;
public:
A(int data=0);
void compute();
void output();
};
A::A(int data)
{
n=data;
double s=1;
for(int i=1;i<=n;i++)
s+=log10(i);
bits=(int)s;
p=new char[bits];
for(i=0;i<bits;i++)
p[i]='#';
p[bits-1]='1';
}
void A::compute()
{
int s,j;
for(int i=1;i<=n;i++)
{ s=0;j=bits-1;
while(p[j]!='#')
{
s+=i*(p[j]-'0');
p[j]=s%10+48;
s=s/10;
j--;
}
while(s!=0)
{
p[j]=s%10+48;
s=s/10;
j--;
}
}
}
void A::output()
{
for(int i=0;i<bits;i++)
cout<<p[i];
cout<<endl<<bits<<endl;
}
void main(void)
{
int n=4000;
A a(n);
a.compute();
a.output();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?