zoukankan      html  css  js  c++  java
  • 计算机考研复试真题 a+b(大数加法)

    题目描述

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

    输入描述:

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

    输出描述:

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

    输入

    2 6
    10000000000000000000 10000000000000000000000000000000
    

    输出

    8
    10000000000010000000000000000000





    /*
    程序设计思路:属于大数相加题型,一种典型解题步骤:
    1、从结尾开始每位相加 
    2、两个整数长度不相等(肯定有一个已经加完了,再把没有加完的加上去) 
    3、最高位有进位,要再进一位 
    4、结果字符串逆序
    */
    #include<iostream>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    string BigNumAdd(const string& strNum1, const string& strNum2)
    {
        string strSum;
        int len1 = strNum1.size()-1;
        int len2 = strNum2.size()-1;
        int bit = 0;                //保存进位
    
        //从结尾开始每位相加 
        while (len1>=0 && len2>=0)
        {
            //求每位的和(要把进位也加上) 
            int tmpSum = strNum1[len1]-'0' + strNum2[len2]-'0' + bit;
            //保存进位结果 
            strSum += tmpSum % 10 + '0';
            //求进位 
            bit = tmpSum / 10;
            --len1;
            --len2; 
        }
    
        //两个整数长度不相等(肯定有一个已经加完了,不需要再额外加if来判断,因为while就可以判断)
        while (len1 >= 0)
        {
            //和上个while循环一样
            int tmpSum = strNum1[len1]-'0' + bit;
            strSum += tmpSum % 10 + '0';
            bit = tmpSum / 10;
            --len1; 
        }
        while (len2 >= 0) 
        {
            //和上个while循环一样
            int tmpSum = strNum2[len2]-'0' + bit;
            strSum += tmpSum % 10 + '0';
            bit = tmpSum / 10;
            --len2; 
        }
    
        //最高位有进位
        if (bit != 0)
            strSum += bit + '0'; 
        //反转
        reverse(strSum.begin(), strSum.end()); 
        return strSum;
    }
    
    int main(){
        string num1,num2;
        while(cin>>num1>>num2){
            cout<<BigNumAdd(num1,num2)<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Java中常见时间类的使用
    springboot2.0介绍1
    Element-ui-Basic
    Java开发中的23中设计模式详解(一)工厂方法模式和抽象工厂模式
    CSS3 变形、过渡、动画、关联属性浅析
    Webpack 入门教程
    ES6对象简洁语法
    如何下载ts文件
    PPT转PDF
    python实践
  • 原文地址:https://www.cnblogs.com/parzulpan/p/9948899.html
Copyright © 2011-2022 走看看