发现题解没有高精度

P1001 A+B Problem

zongchengxin @ 2024-08-19 16:41:33


by lccjsw @ 2024-08-19 16:44:08

#include<bits/stdc++.h>
using namespace std;
int main() {
    int a,b,c;
    cin>>a>>b;
    c=a+b;
    cout<<c;
    return 0;
}

求关


by Besheep @ 2024-08-19 16:45:50

发现有一道 高精度 A + B problem

P1601


by Besheep @ 2024-08-19 16:48:23

@lccjsw 不开 long long 见祖宗


by lccjsw @ 2024-08-19 16:51:46

@Besheep 求关+

#include<bits/stdc++.h>
using namespace std;
//因为是高精度,所以要用string类型来定义; 
string s1,s2;
//sz1数组存储s1各个位;sz2数组存储s2各个位;
//ans数组存储最后的答案;
//jw存储每位相加后需要进位的值; 
int sz1[510],sz2[510];
int ans[510],jw[510];
int main(){
    cin>>s1>>s2;
    //定义s1与s2的长度 
    int L1=s1.size();
    int L2=s2.size();
    //注意:减去的是一个字符0; 
    for(int i=0;i<L1;i++)   sz1[L1-1-i]=s1[i]-'0';
    for(int i=0;i<L2;i++)   sz2[L2-1-i]=s2[i]-'0';
    //l3代表取L1与L2中的最长的一个; 
    int L3=max(L1,L2)+1;
    for(int i=0;i<L3;i++){
        //进位以及个位要留的值 
        ans[i]=(sz1[i]+sz2[i]+jw[i])%10;
        jw[i+1]=(sz1[i]+sz2[i]+jw[i])/10;
    }
    //删掉前导0,最高位不能为0; 
    while(ans[L3-1]==0&&L3>1){
        L3--;   
    }
    for(int i=L3-1;i>=0;i--){
        //最后输出答案; 
        cout<<ans[i];
    }
}

by lccjsw @ 2024-08-19 16:52:07

@Besheep 长记性了


by zhizhenhuyuzhe @ 2024-08-19 16:53:05

@lccjsw lc别要关注了


by lccjsw @ 2024-08-19 16:53:33

@Besheep关注了


by lccjsw @ 2024-08-19 16:55:02

@zhizhenhuyuzhe lz.


by zhizhenhuyuzhe @ 2024-08-19 16:56:50

@lccjsw 呜呜呜,我错了


by aibianchendeyangyang @ 2024-08-20 09:44:52

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    cout<<a+b;
    return 0;
}

| 下一页