0
0
已采纳
黄依成
中级天翼
中级天翼
可以给你,如果能看懂就更好啦
#include<iostream>
#include<cstring>
using namespace std;
int a[100005],b[100005],c[100005];
string x,y;
string Plus(string x,string y){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
a[0]=x.size(),b[0]=y.size(),c[0]=max(a[0],b[0]);
for(int i=1;i<=a[0];i++) a[i]=x[a[0]-i]-'0';
for(int i=1;i<=b[0];i++) b[i]=y[b[0]-i]-'0';
int jw=0;string ans="";
for(int i=1;i<=c[0];i++){
c[i]=a[i]+b[i]+jw;
jw=c[i]/10,c[i]%=10;
}
if(jw>0){c[0]++,c[c[0]]=1;}
for(int i=1;i<=c[0];i++) ans=char(c[i]+'0')+ans;
return ans;
}
int main(){
cin>>x>>y;
cout<<Plus(x,y);
return 0;
}
这个是加法,可能有点压行
#include<iostream>
#include<cstring>
using namespace std;
int a[10005],b[10005],c[10005];
string x,y;
string Mul(string x,string y){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
a[0]=x.size(),b[0]=y.size(),c[0]=a[0]+b[0];
for(int i=1;i<=a[0];i++) a[i]=x[a[0]-i]-'0';
for(int i=1;i<=b[0];i++) b[i]=y[b[0]-i]-'0';
int jw=0;string ans="";
for(int i=1;i<=a[0];i++){
for(int j=1;j<=b[0];j++) c[i+j-1]+=a[i]*b[j];
}
for(int i=1;i<=c[0];i++){
if(c[i]>9){
c[i+1]+=c[i]/10;
c[i]%=10;
}
}
for(int i=1;i<=c[0];i++) ans=char(c[i]+'0')+ans;
return ans;
}
int main(){
cin>>x>>y;
string ans=Mul(x,y);
while(ans[0]=='0') ans.erase(0,1);
cout<<ans;
return 0;
}
这个是乘法
学什么c++啊,python一行搞定(doge)
0
0
0