0
已采纳
王欣怡
新手光能
新手光能
加法
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int w[1000010],a[1000010],b[1000010];
void he()
{
w[0]=max(a[0],b[0]);
int jw=0,h;
for(int i=1;i<=w[0];i++)
{
h=a[i]+b[i]+jw;
w[i]=h%10;
jw=h/10;
}
if(jw!=0)
{
w[0]++;
w[w[0]]=jw;
}
}
int main()
{
char s1[1000010],s2[1000010];
cin>>s1>>s2;
a[0]=strlen(s1);
b[0]=strlen(s2);
for(int i=1;i<=a[0];i++)
a[i]=s1[a[0]-i]-'0';
for(int i=1;i<=b[0];i++)
b[i]=s2[b[0]-i]-'0';
he();
for(int i=w[0];i>=1;i--)cout<<w[i];
return 0;
}
减法
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int c[1000010],a[1000010],b[1000010];
void jian()
{
c[0]=a[0];
for(int i=1;i<=c[0];i++)
{
if(a[i]<b[i])
{
a[i+1]--;
a[i]+=10;
}
c[i]=a[i]-b[i];
}
while(c[c[0]]==0) c[0]--;
}
int main()
{
char s1[1000010],s2[1000010];
cin>>s1>>s2;
a[0]=strlen(s1);
b[0]=strlen(s2);
for(int i=1;i<=a[0];i++)
a[i]=s1[a[0]-i]-'0';
for(int i=1;i<=b[0];i++)
b[i]=s2[b[0]-i]-'0';
jian();
for(int i=c[0];i>=1;i--)cout<<c[i];
return 0;
}
乘法
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int w[1000010],a[1000010],b[1000010];
void he()
{
int jw;
for(int i=1;i<=a[0];i++)
{
jw=0;
for(int j=1;j<=b[0];j++)
{
w[i+j-1]+=a[i]*b[j]+jw;
jw=w[i+j-1]/10;
w[i+j-1]%=10;
}
w[i+b[0]]+=jw;
}
w[0]=a[0]+b[0];
while(w[w[0]]==0&&w[0]!=1)w[0]--;
}
int main()
{
char s1[1000010],s2[1000010];
cin>>s1>>s2;
a[0]=strlen(s1);
b[0]=strlen(s2);
for(int i=1;i<=a[0];i++)
a[i]=s1[a[0]-i]-'0';
for(int i=1;i<=b[0];i++)
b[i]=s2[b[0]-i]-'0';
he();
for(int i=w[0];i>=1;i--)cout<<w[i];
return 0;
}
记得采纳吼吼吼
0
0
0
0