高精求助,只对了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 Tanleyan @ 2023-08-19 16:43:11

这么简单,为什么要搞这么复杂,附上代码


#include<cstdio>
using namespace std;
int main()
{
    int a,b,c;
    scanf("%d%d",&a,&b);
    c=a+b;
    printf("%d",c);
    return 0;
}

by Tanleyan @ 2023-08-19 16:44:58

@gordon321 ,你试试我的,我这是AC


by sapo1o @ 2023-08-19 20:20:32

@ouyangluoxi 额,我们在讨论高精度算法


by Jason_Ming @ 2023-08-22 11:36:53

其实,我觉得这道题不用高精吧,直接a+b不就行了


by peijunshuo_9961 @ 2023-08-23 14:24:12

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

by peijunshuo_9961 @ 2023-08-23 14:25:00

不用谢


by __youzimo2014__ @ 2023-08-28 11:31:45

有负数,而且有专门的高精度题目,这个题目只是普普通通的a+b


by DBL_MAX @ 2023-08-31 19:32:53

@gordon321 其实这个题不用高精度也能过的。 就像我这样:

#include<iostream>
using namespace std;
int main()
{
    long long a,b;
    cin>>a>>b;
    cout<<a+b;
}

其实这道题的数据里面有负数,普通高精度会 RE ,所以我刚才那种是最简单的(要不然这道题也不会是红题)。这个才是高精度的 A+B


by DBL_MAX @ 2023-08-31 19:33:55

@peijunshuo_9961 你这个得 CE 呀,主函数没有花括号结束


by peijunshuo_9961 @ 2023-08-31 20:48:38


上一页 | 下一页