高精,实际上使用数组模拟我们小学时列竖式的过程,所以当不会写时用python,列竖式的来想怎么解决。
高精加
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int a2[1010],b2[1010],cl[1010];
char al[1010],bl[1010];
int i,a,b,c;
scanf("%s",al);
scanf("%s",bl);
a=strlen(al);
b=strlen(bl);
memset(cl,0,sizeof(cl));
for(i=0;i<a;i++)
{
a2[a-i]=al[i]-'0';
}
for(i=0;i<b;i++)
{
b2[b-i]=bl[i]-'0';
}
c=max(a,b);
for(i=1;i<=c;i++)
{
cl[i]+=a2[i]+b2[i];
cl[i+1]+=cl[i]/10;
cl[i]%=10;
}
if(cl[i]!=0)
{
c++;
}
for(i=c;i>0;i--)
{
cout<<cl[i];
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int a2[10010],b2[10010],cl[10010];
char al[10010],bl[10010];
int i,a,b,c,k=0;
memset(cl,0,sizeof(cl));
scanf("%s",al);
scanf("%s",bl);
a=strlen(al);
b=strlen(bl);
for(i=0;i<a;i++) a2[a-i]=al[i]-'0';
for(i=0;i<b;i++) b2[b-i]=bl[i]-'0';
if(a<b) k=1;
if(k==0&&a==b)
for(i=max(a,b);i>0;i--)
if(a2[i]<b2[i])
{
k=1;
break;
}
if(k==1)
{
for(i=1;i<=max(a,b);i++)
swap(a2[i],b2[i]);
cout<<"-";
}
c=max(a,b);
for(i=1;i<=c;i++)
{
cl[i]=cl[i]+a2[i]-b2[i];
if(cl[i]<0&&i<c)
{
cl[i]+=10;
cl[i+1]--;
}
}
while(cl[c]==0&&c>1)
{
c--;
}
for(i=c;i>0;i--)
{
cout<<cl[i];
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int a2[2010],b2[2010],cl[4020];
char al[2010],bl[2010];
int i,a,b,c,j;
scanf("%s",al);
scanf("%s",bl);
a=strlen(al);
b=strlen(bl);
memset(cl,0,sizeof(cl));
for(i=0;i<a;i++)
{
a2[a-i]=al[i]-'0';
}
for(i=0;i<b;i++)
{
b2[b-i]=bl[i]-'0';
}
c=a+b-1;
for(i=1;i<=a;i++)
{
for(j=1;j<=b;j++)
{
cl[i+j-1]+=a2[i]*b2[j];
cl[i+j]+=cl[i+j-1]/10;
cl[i+j-1]%=10;
}
}
c++;
while(cl[c]==0&&c>1)
{
c--;
}
for(i=c;i>0;i--)
{
cout<<cl[i];
}
return 0;
}
#include<string>
#include<iostream>
using namespace std;
string a,c;
int b,d;
int main(){
cin>>a>>b;
for(int i=0;i<a.length();i++)a[i]-=48;
for (int i=0;i<a.length();i++)
c.push_back((d*10+a[i])/b+48),d=(d*10+a[i])%b;
for (int i=0;c[0]==48;i++)c.erase(c.begin(),c.begin()+1);
cout<<c;
return 0;
}