#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
int numa[100],al[1000],numb[100],bl[1000];
string a,b;
void cf(int num[],int al[],int len)
{
int c[1000]={0};
for(int i=0;i<len;i++)
for(int j=0;j<1000;j++)
c[i+j]=c[i+j]+num[i]*al[j];///模拟手算过程
for(int i=0;i<1000;i++)
{
if(c[i]>=10)c[i+1]=c[i+1]+c[i]/10;
al[i]=c[i]%10;
}
}
int main()
{
while(cin>>a>>b)
{
memset(al,0,sizeof(al));
memset(bl,0,sizeof(bl));
memset(numa,0,sizeof(numa));
memset(numb,0,sizeof(numb));
int lena,lenb,ca=0,cb=0;
lena=a.size();
lenb=b.size();
for(int i=0;i<lena;i++)
{
ca=ca*10+(a[i]-'0');
}
for(int i=0;i<lenb;i++)
{
cb=cb*10+(b[i]-'0');
}
//cout<<ca<<" "<<cb<<endl;
for(int i=0;i<lena;i++)numa[i]=al[i]=a[lena-1-i]-'0';
for(int i=0;i<lenb;i++)numb[i]=bl[i]=b[lenb-1-i]-'0';
/*
for(int i=0;i<lena;i++)cout<<numa[i];
cout<<endl;
for(int i=0;i<lenb;i++)cout<<numb[i];
cout<<endl;
for(int i=0;i<lena;i++)cout<<al[i];
cout<<endl;
for(int i=0;i<lenb;i++)cout<<bl[i];
cout<<endl;
*/
for(int i=1;i<cb;i++)
{
cf(numa,al,lena);
}
for(int i=1;i<ca;i++)
{
cf(numb,bl,lenb);
}
int za=298,zb=298;
while(al[za]==0)za--;
while(bl[zb]==0)zb--;
// cout<<za<<" "<<zb<<endl;
//for(int i=za;i>=0;i--)cout<<al[i];
//cout<<endl;
//for(int i=zb;i>=0;i--)cout<<bl[i];
//cout<<endl;
///下面为减法
int flag=1;///al大于或等于bl
if(za<zb)flag=0;
else if(za==zb)
{
for(int i=zb;i>=0;i--)
{
if(al[i]>bl[i])break;
else if(al[i]<bl[i]){flag=0;break;}
}
}
int sum[300]={0};
if(flag)
{
for(int j=0;j<=za;j++)
{
sum[j]=al[j]-bl[j];
}
for(int j=0;j<=za;j++)
{
if(sum[j]<0&&j+1<=za)
{
sum[j]+=10;
sum[j+1]--;
}
}
int cc=za;
while(za>=0&&sum[za]==0)za--;
if(za<0)cout<<'0'<<endl;
else
{
for(int i=za;i>=0;i--)cout<<sum[i];
cout<<endl;
}
}
else
{
for(int j=0;j<=zb;j++)
{
sum[j]=bl[j]-al[j];
}
for(int j=0;j<=zb;j++)
{
if(sum[j]<0&&j+1<=zb)
{
sum[j]+=10;
sum[j+1]--;
}
}
int cc=zb;
while(zb>=0&&sum[zb]==0)zb--;
if(zb<0)cout<<'0'<<endl;
else
{
cout<<'-';
for(int i=zb;i>=0;i--)cout<<sum[i];
cout<<endl;
}
}
}
return 0;
}
sdnuoj 1594大数幂运算 减法运算
最新推荐文章于 2024-03-25 18:41:09 发布