高精度
by chaynflow @ 2023-02-25 12:35:17
@[Xcy20101213](/user/579261)
long long会炸,要开高精
by Coffins @ 2023-02-25 12:39:01
呀~
开了long long也会见祖宗哎
by lonely_conqueror @ 2023-02-25 13:11:24
大佬,我这该怎么用高精度改,希望各位大佬谁有时间,帮我这个蒟蒻改一下代码,谢谢啦
by Xcy20101213 @ 2023-02-25 14:08:53
代码:
```cpp
#include<iostream>
using namespace std;
int a[5005],t=1,result[5005],lenr=5005;
void fenjie(int n)
{
int s=0;
for(int i=2;i<=n;i++)
{
if(s+i<=n)
{
a[t++]=i;
s+=i;
}
else
{
a[t++]=i;
int k=0;
k=s+i-n;
if(k==1)
{
a[1]=0;
a[t-1]++;
}
else
{
for(int j=1;j<=i;j++)
{
if(a[j]==k)
{
a[j]=0;
break;
}
}
}
break;
}
}
}
void xf()
{
for(int i=1;i<=t;i++)
{
if(a[i]==0)continue;
int cur=0;
for(int j=1;j<=lenr;j++)
{
cur=result[j]*a[i]+cur/10;
result[j]=cur%10;
}
}
while(result[lenr]==0&&lenr>1)lenr--;//计算lenr的值
}
int main()
{
int n;
cin>>n;
if(n<=4)
{
cout<<n;
return 0;
}
fenjie(n);
result[1]=1;
xf();
for(int i=1;i<=t;i++)
if(a[i])
cout<<a[i]<<' ';
cout<<endl;
for(int i=lenr;i>=1;i--)
cout<<result[i];
cout<<endl;
return 0;
}
```
by szy0609 @ 2023-06-03 19:29:39