高精求助,只对了3个

P1001 A+B Problem

gordon321 @ 2023-08-12 16:25:52

#include<bits/stdc++.h>
using namespace std;
int main(){
    string a;
    string b;
    cin>>a;
    cin>>b;
    int c[1000]={0};
    int jy=0;
    int sw=0;
    int x=a.length()-1;
    int y=b.length()-1;
    for(int i=0;i<max(a.length(),b.length())+1;i++){
        if(i==max(a.length(),b.length())){
            if(jy==0){
                continue;
            }else{
                c[i]=jy;
                continue;
            }
        }
        if(a.length()>b.length()&&i>=b.length()){
            c[i]=(a[x]-48+jy)%10;
            if(a[x]-48+jy>=10){
                jy=(a[x]-48+jy)/10;
            }else{
                jy=0;
            }
        }else if(a.length()<b.length()&&i>=a.length()){
            c[i]=(b[y]-48+jy)%10;
            if(b[y]-48+jy>=10){
                jy=(b[y]-48+jy)/10;
            }else{
                jy=0;
            }
        }else{
            c[i]=(a[x]-48+b[x]-48+jy)%10;
            if(a[x]-48+b[x]-48+jy>=10){
                jy=(a[x]-48+b[y]-48+jy)/10;
            }else{
                jy=0;
            }
        }
        x--;
        y--;
        sw++;
    }
    for(int i=sw;i>=0;i--){
        if(i==sw&&c[i]==0){
        }else{  
            cout<<c[i];
        }
    }
    return 0;
}

by caramel_qwq @ 2023-08-12 16:29:21

@gordon321 这题要高精?


by 大眼仔Happy @ 2023-08-12 16:29:33

@gordon321

Hack:
9901
99

by I_AM_AC_KING @ 2023-08-12 16:29:57

@gordon321 有负数?


by Edison0324 @ 2023-08-12 16:30:39

a+b:那我走?


by HKW0202 @ 2023-08-12 16:31:24

离大谱


by 大眼仔Happy @ 2023-08-12 16:32:15

@gordon321

可以看看我这个过了/doge:https://www.luogu.com.cn/paste/yul8sf49


by sapo1o @ 2023-08-12 16:35:52

@gordon321 参考这个

主要思路就是 把两个字符串倒过来相加,去除前导零,在倒序输出即可。

#include <bits/stdc++.h>
using namespace std;
string s1,s2;
const int N=10010;
int a[N],b[N],c[N];
void add(int a[],int b[],int c[]) {
    int carry=0;
    for(int i=0;i<N;i++) {
        c[i]=a[i]+b[i]+carry;
        carry=c[i]/10;
        c[i]%=10;
    }
}

int main() {
    cin>>s1>>s2;
    int len1=s1.size();
    int len2=s2.size();
    for(int i=0;i<len1;i++) {
        a[i]=s1[len1-1-i]-'0';
    }
    for(int i=0;i<len2;i++) {
        b[i]=s2[len2-1-i]-'0';
    }
    add(a,b,c);
    int k=N-1;
    while(k>0&&c[k]==0) {
        k--;
    }
    for(int i=k;i>=0;i--) {
        cout<<c[i];
    }
    cout<<endl;
    return 0;
}

by 大眼仔Happy @ 2023-08-12 16:36:27

@red_hair_steve 看看我的/嘿嘿


by gongziwen @ 2023-08-12 16:39:56

@red_hair_steve srds,我不懂为什么一堆调代码(一般是水题)下面全是发自己代码的,这对lz有什么帮助?


by ABCgfed @ 2023-08-12 16:49:50

@caramel_qwq 你不是在写猪国杀吗?


| 下一页