一天两题,佛系养生/doge
阶乘计算
#include<bits/stdc++.h>
using namespace std;
const int N=3000;
int f[N],n;
int main()
{
cin>>n;
f[1]=1;
for(int i=2;i<=n;i++)
{
for(int j=1;j<3000;j++)
f[j]*=i;
for(int k=1;k<3000;k++)
{
f[k+1]+=f[k]/10;
f[k]%=10;
}
}
int m=2999;
while(!f[m]) m--;
while(m)
{
cout<<f[m];
m--;
}
cout<<endl;
return 0;
}
高精度加法
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int f[N],x[N],y[N];
int main()
{
string a,b;
cin>>a>>b;
for(int i=0,l=a.size()-1;i<a.size();i++,l--)
x[i]=a[l]-'0';
for(int i=0,l=b.size()-1;i<b.size();i++,l--)
y[i]=b[l]-'0';
for(int i=0;i<105;i++)
f[i]=x[i]+y[i];
for(int i=0;i<105;i++)
{
f[i+1]+=f[i]/10;
f[i]%=10;
}
int m=105;
while(!f[m]) m--;
while(m>=0)
{
cout<<f[m];
m--;
}
cout<<endl;
return 0;
}