#include<bits/stdc++.h>
using namespace std;
int a[10000010],b[10000010],c[10000010];
string s1;
string s2;
inline int check()
{
if(s1.size()>s2.size())return 1;
if(s1.size()<s2.size())return 2;
for(int i=0;i<s1.size();i++)
if(s1[i]-'0'<s2[i]-'0')return 2;
else if(s1[i]-'0'>s2[i]-'0')return 1;
return 1;
}
inline void GJ_Jia()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
for(int i=0;i<s1.size();i++)a[s1.size()-i]=s1[i]-'0';
for(int i=0;i<s2.size();i++)b[s2.size()-i]=s2[i]-'0';
int len=max(s1.size(),s2.size());
for(int i=1;i<=len;i++)
{
c[i]+=a[i]+b[i];
c[i+1]+=c[i]/10;
c[i]%=10;
}
int tep=len+1;
while(!c[tep]&&tep>1)tep--;
for(int i=tep;i>=1;i--)cout<<c[i];
cout<<endl;
}
inline void GJ_Jian()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
if(check()==1)
{
for(int i=0;i<s1.size();i++)a[s1.size()-i]=s1[i]-'0';
for(int i=0;i<s2.size();i++)b[s2.size()-i]=s2[i]-'0';
}
else
{
putchar('-');
string q;
q=s1;s1=s2;s2=q;
for(int i=0;i<s1.size();i++)a[s1.size()-i]=s1[i]-'0';
for(int i=0;i<s2.size();i++)b[s2.size()-i]=s2[i]-'0';
}
int len=max(s1.size(),s2.size());
for(int i=1;i<=len;i++)
{
if(a[i]<b[i])a[i+1]--,a[i]+=10;
c[i]=a[i]-b[i];
}
int tep=len+1;
while(!c[tep]&&tep>1)tep--;
for(int i=tep;i>=1;i--)cout<<c[i];
cout<<endl;
string q;
q=s1;s1=s2;s2=q;
}
inline void GJ_Cheng()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
for(int i=0;i<s1.size();i++)a[s1.size()-i]=s1[i]-'0';
for(int i=0;i<s2.size();i++)b[s2.size()-i]=s2[i]-'0';
int len=s1.size()+s2.size()+1;
for(int i=1;i<=s1.size();i++)
for(int j=1;j<=s2.size();j++)
c[i+j-1]+=a[i]*b[j];
for(int i=1;i<=len;i++)
c[i+1]+=c[i]/10,c[i]%=10;
int tep=len+1;
while(!c[tep]&&tep>1)tep--;
for(int i=tep;i>=1;i--)cout<<c[i];
cout<<endl;
}
inline void GJ_ChuDiJing()
{
if(check()==2)
{
cout<<0<<endl<<s1<<endl;
return;
}
int b=0;
for(int i=0;i<s1.size();i++)a[i+1]=s1[i]-'0';
for(int i=0;i<s2.size();i++)b=(b<<1)+(b<<3)+(s2[i]&15);
int tep=0;
for(int i=1;i<=s1.size();i++)
{
c[++tep]=a[i]/b;
a[i+1]=a[i]%b*10+a[i+1];
}
int j=1;
while(!c[j])j++;
for(int i=j;i<=tep;i++)cout<<c[i];
cout<<endl;
cout<<a[s1.size()+1]/10<<endl;
}
int main()
{
cin>>s1>>s2;
GJ_Jia();
GJ_Jian();
GJ_Cheng();
GJ_ChuDiJing();
return 0;
}
高精代码重出江湖
最新推荐文章于 2020-12-20 14:05:36 发布