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;
    }
  • 相关阅读:
    关于Date相关函数在火狐Firefox和谷歌Chrome下的不同
    一键部署 LNMP 建站环境
    Python 返回值、方法和函数的区别
    Python中万物皆对象?的理解
    Python 实用小工具 练习(2)
    Chrome浏览器F12开发者工具使用教程博客汇总
    觅风易语言[21-24、30]
    觅风易语言[1-10]
    觅风易语言[11-20]
    Python Byte类型(API系列)
  • 原文地址:https://www.cnblogs.com/parzulpan/p/9948899.html
Copyright © 2011-2022 走看看