zoukankan      html  css  js  c++  java
  • 题目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;
    }
  • 相关阅读:
    ES6 正则的扩展(待细读)
    ES6 字符串的扩展(待细读)
    CImage访问像素及其像素操作总结
    Top-Down和Bottom-Up位图的区别
    C++运算符优先级
    图像处理库CImg
    DDX_Text详细用法
    DDX和DDV——控件与变量之间值的传递
    JavaScript实现的9大排序算法
    Visual Studio快捷键
  • 原文地址:https://www.cnblogs.com/Elaine-DWL/p/6813359.html
Copyright © 2011-2022 走看看