1
已解决
李牧之
新手光能
新手光能
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[20001],b[20001],c[20001],i,j,lena,lenb,x,lenc;
char al[20001],bl[20001];
int main(){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
gets(al); gets(bl);
lena=strlen(al);
lenb=strlen(bl);
for(i=0;i<=lena-1;++i) a[lena-i]=int(al[i]-'0');
for(i=0;i<=lenb-1;++i) b[lenb-i]=int(bl[i]-'0');
x=0;
lenc=1;
while (lenc<=lenb||lenc<=lena){
c[lenc]=a[lenc]+b[lenc]+x;
x=c[lenc]/10;
c[lenc]%=10;
lenc++;
}
c[lenc]=x;
while (c[lenc]==0) lenc--;
for(i=lenc;i>=1;i--) cout<<c[i];
cout<<endl;
return 0;
}
各位大佬,请帮助我一下。
0
已采纳
陆麟瑞
资深天翼
资深天翼
模拟一遍ok
思路可以看看书。
for(int i=0; i<n1; i++) a[i+1]=int(s1[n1-i-1])-'0'; cin>>s2; int n2=s2.size(); for(int i=0; i<n2; i++) b[i+1]=int(s2[n2-i-1])-'0'; int k=1,x=0; while(k<=n1||k<=n2) { c[k]=a[k]+b[k]+x; x=c[k]/10; c[k]%=10; k++; } int n3; if(x==1) { n3=max(n1,n2)+1; c[n3]=x; } else n3=max(n1,n2); for(int i=n3; i>=1; i--) cout<<c[i];
0
梁锦程
高级光能
高级光能
string add(string x,string y) { if(x.size()<y.size()) swap(x,y); int lx=x.size(),ly=y.size(),f=0,a,b,s; while(lx>0) { a=x[lx-1]-'0'; if(ly>0) b=y[ly-1]-'0'; else b=0; s=a+b+f; if(s>=10) { x[lx-1]='0'+s%10; f=1; } else { x[lx-1]='0'+s; f=0; } lx--; ly--; } if(f==1) x="1"+x; return x; }
0
王梓澳
中级光能
中级光能
输入改成:
cin>>al>>bl;
int lena = al.length();
int lenb = bl.length();
for(int i = 0;i <= lena - 1;i ++)
a[lena - i] = al[i] - 48;
for(int i = 0;i <= lenb -1;i ++)
b[lenb - i] = bl[i] - 48;
int lenc = 1;
int x = 0;
0
0
0
0