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

0
0
已解决
聪雨墨
聪雨墨
高级守护
高级守护

题目描述 Description

相信a+b问题对大家来说,应该不陌生了吧。给出两个整数a和b,求a和b的和。

输入描述 Input Description

第一行一个整数N(N<100),表示求和的数字对数;
接下来N行,每行两个整数a和b。
【数据范围】
对于70%的数据,0<=a,b<=1000;
对于100%的数据,0<=a,b<=10^100。

输出描述 Output Description

N行,每行一个数表示两个数a,b的和。

样例输入 Sample Input

1 3 5

样例输出 Sample Output

8

#include<bits/stdc++.h>

using namespace std;

int main(){

    int a,b,c;

    cin>>a>>b>>c;

    cout<<b+c;

}

 


0
已采纳
陈正朔
陈正朔
初级光能
初级光能

n<=10^100,你还不用高精?

这会爆0的!

高精参考程序

string Plus(string x,string y){//字符串x+字符串y
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));//数组自己定义
    a[0]=x.length(),b[0]=y.length();
    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;
    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]]=jw;
    }
    string ans="";
    for(int i=c[0];i>=1;i--){
        ans+=char(c[i]+'0');//储存
    }
    return ans;
}

 

0
王子逸
王子逸
新手天翼
新手天翼

高精度 超过10^9就是int之外了 10^19就是long long 之外了 必须用高精度加法

0
张新杨
张新杨
高级守护
高级守护

高精度,10^100连long long都存不下

0
张恩泽
张恩泽
高级天翼
高级天翼

这道题的数据范围很大,要用高精度加法

我要回答