问题标题: 酷町堂:1096 a+b

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

const int MAXN=100005;

int A[MAXN],B[MAXN],C[MAXN],ANS[MAXN],LEN_A,LEN_B,LEN_ANS;

char x;

void Read(int *A,int &LEN){

string cur;

cin>>cur;

LEN=cur.size();

for(int i=0;i<LEN;i++){

if(cur[i]!='-')

A[i]=cur[i]-'0';

else

x='-';

}

reverse(A,A+LEN);

}

int main(){

int n;

cin>>n;

for(int j=1;j<=n;j++){

LEN_ANS=max(LEN_A,LEN_B);

Read(A,LEN_A);

Read(B,LEN_B);

for(int i=0;i<=LEN_ANS;i++){

ANS[i]=A[i]+B[i]+C[i];

if(ANS[i]>9){

C[i+1]=ANS[i]/10,ANS[i]-=10;

}

}

while(ANS[LEN_ANS]>0){

LEN_ANS++;

}

cout<<x;

for(int i=LEN_ANS-1;i>=0;i--){

cout<<ANS[i];

}

cout<<endl;

}

return 0;

}

WA0


0
0
赵睿泽
赵睿泽
资深守护
资深守护

我就知道你会问。

int n;

string a,b;

cin>>n;

for(int i=1;i<=n;i++){

        cin>>a>>b;

        高精度加法…………

        输出。

        (别忘重置)

}

return 0;

0
朱优扬
朱优扬
中级天翼
中级天翼

你这是高精度吗?(缩进无语,看不了,所以问一下[下次代码放在“插入代码段”])

0
陈正朔
陈正朔
初级光能
初级光能

什么东西,看不懂

核心

while(n--){
        strin x,y;
        cin>>x>>y;
        cout<<Plus(x,y)<<endl;
    }

plus函数,就是高加

0
聪雨墨
聪雨墨
高级守护
高级守护

函数:

void Plus() {

c[0]=max(a[0],b[0]);

int jw=0,h;

for(int i=1;i<=c[0];i++) {

h=a[i]+b[i]+jw;

jw=h/10;

c[i]=h%10;

}

if(jw!=0) {

c[0]++;

c[c[0]]=1;

}

for(int i=c[0];i>=1;i--)

cout<<c[i];

cout<<endl;

}

 

主函数:

int n;

cin>>n;

string x,y;

while(n--) {

cin>>x>>y;

a[0]=x.size();

b[0]=y.size();

for(int i=0;i<x.size();i++)

a[i+1]=x[x.size()-i-1]-'0';

for(int i=0;i<y.size();i++)

b[i+1]=y[y.size()-i-1]-'0';

Plus();

memset(a,0,sizeof(a));

memset(b,0,sizeof(b));

memset(c,0,sizeof(c));

}

头文件自己加

我要回答