1508高精度加法
#include<bits/stdc++.h>
using namespace std;
char s1[201],s2[201];
int a[201],b[201],c[201];
int main()
{
int x,la,lb,lc;
cin>>x;
while(x--){
cin>>s1>>s2;
getchar();
la=strlen(s1);
lb=strlen(s2);
for(int i=0;i<la;i++)
{
a[la-i]=s1[i]-'0';
}
for(int i=0;i<lb;i++)
{
b[lb-i]=s2[i]-'0';
}
lc=max(la,lb)+1;
for(int i=1;i<lc;i++)
{
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]%=10;
}
if(c[lc]==0&&lc>0)
lc--;
for(int i=lc;i>0;i--)
{
cout<<c[i];
c[i]=0;
}
cout<<endl;}
return 0;
}
心得:
先定义需要的字符串数组和整型数组
输入字符串获取字符串长度用for循环把字符串存入整型数组中(先把字符串转换为整形 倒序存入整形数组中) 用max取俩字符串的最长长度~
for(int i=1;i<lc;i++)
{
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10;
c[i]%=10;
}
洛谷ac
acm失败