• 题目1198:a+b【字符串】


    题目描述:

    实现一个加法器,使其能够输出a+b的值。

    输入:

    输入包括两个数a和b,其中a和b的位数不超过1000位。

    输出:

    可能有多组测试数据,对于每组数据,
    输出a+b的值。

    样例输入:
    2 6
    10000000000000000000 10000000000000000000000000000000
    样例输出:
    8
    10000000000010000000000000000000

    感觉这道题很不严谨啊 测试用例应该只是 算两个正数的和 然后我搞了很久 正+负 负+负。。。。虽然有没做出来吧。。。。
    #include<stdio.h>
    #include<iostream>
    #include<string>
    #include<string.h>
    using namespace std;
    int a[1005],b[1005],c[1005],d[1005];//c 进位  d 结果位 
    string sa,sb;
    int main(){
        while(cin>>sa){
            cin>>sb;
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            memset(c,0,sizeof(c));
            for(int i=sa.size()-1,j=1002;i>=0;i--,j--){
                a[j]=(sa[i]-48);
            }
            for(int i=sb.size()-1,j=1002;i>=0;i--,j--){
                b[j]=(sb[i]-48);
            }
            int bitmax=sa.size()>sb.size()?sa.size()+1:sb.size()+1;
            for(int i=1002;i>1002-bitmax;i--){
                d[i]=(a[i]+b[i]+c[i])%10;
                c[i-1]=(a[i]+b[i]+c[i])/10;
            }
            int flagg=0;
            for(int j=1003-bitmax;j<1003;j++){
                if(flagg==0&&d[j]==0&&j!=1002){
                    continue;
                }
                flagg=1;
                cout<<d[j];
            }
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Spark开发-SparkUDAF(二)
    Spark开发-Spark UDAF(一)
    Spark开发-Spark中类型安全UDAF开发示例
    Spark开发_构建TypeSafe的Dataset
    布隆过滤器(Bloom Filter)
    一个 Spark 应用程序的完整执行流程
    Spark的RPC
    Spark调优
    Hbase系列文章
    Flink怎么做到精确一次的?
  • 原文地址:https://www.cnblogs.com/Elaine-DWL/p/6813359.html
Copyright © 2020-2023  润新知