超长正整数的相加,题目链接:https://www.nowcoder.com/practice/5821836e0ec140c1aa29510fd05f45fc?tpId

#include<algorithm>
#include<iostream>
#include<string>
using namespace std;string AddLongInteger(string addend, string augend){
int i = 0,n=addend.size()>augend.size()?n=addend.size():n=augend.size(); //n为较长计算值的长度,用来循环计算时使用
string c; //计算结果保存的值
int temp, tep = 0; //进位值要记得初始化
reverse(addend.begin(), addend.end()); //这里将两个加数都翻转过来计算,主要是为了写入结果的时候可以直接使用‘+=’
reverse(augend.begin(), augend.end()); //当然也可以没有这一步,直接从后往前算
for (; i < n; i++){
int a = i<addend.size() ? addend[i] - '0' : 0; //若是一个加数已经全部计算完成,在接下来就用0代替来计算
int b = i<augend.size() ? augend[i] - '0' : 0;
temp = (a+b+tep)% 10; //计算结果值(要填入结果的值)
tep = (a + b + tep) / 10; //进位值
c += temp + 48; // 填入结果
}
if (tep>0){ //若是最后一位计算有进位值,则直接填入结果
c += tep+'0';
}
reverse(c.begin(), c.end()); //将计算结果反过来就是正确结果
return c;
} int main(){
string a, b, c;
while (cin >> a >> b){
cout << AddLongInteger(a, b) << endl;
}
return 0;
}

  

C/C++ 每日一题的更多相关文章

  1. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  2. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  3. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  4. 【Java每日一题】20170103

    20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  5. 【Java每日一题】20161230

    // 20161229问题解析请点击今日问题下方的"[Java每日一题]20161230"查看(问题解析在公众号首发,公众号ID:weknow619)package Dec2016 ...

  6. 【Java每日一题】20161229

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1229 { public s ...

  7. 【Java每日一题】20161228

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1228 { public s ...

  8. 【Java每日一题】20161227

    package Dec2016; public class Ques1227 { public static void main(String[] args){ } { c = 1; } int c ...

  9. 【Java每日一题】20161226

    package Dec2016; public class Ques1226 { static{ num = 1; } public static int num = 2; public static ...

  10. 【Java每日一题】20161223

    package Dec2016; public class Ques1223 { public static void main(String[] args){ Integer obj = Integ ...

随机推荐

  1. python 当前时间多加一天、一小时、一分钟(转载)

    首先看下,datetime的使用 import datetime >>> print datetime.datetime.now() 2017-07-15 15:01:24.6190 ...

  2. gtibase rpm包制作

    gitbase 是一个很不错的代码分析工具,我们可以直接使用sql来分析团队的代码,以下是rpm 包的制作 简单说明 rpm 包的制作使用了fpm 一个简单,方便可以跨平台的软件包制作工具 gitba ...

  3. 为知笔记docker 版本运行

    最近为知提供了服务端的docker 运行,因为是全家桶,镜像偏大,但是使用还很不错,对于少于5人的可以免费使用 docker-compose 文件 version: "3" ser ...

  4. kuma 学习二 centos 安装

    前边有使用minikube运行kuma,以下是在centos 上安装使用 环境准备 下载软件包 wget https://kong.bintray.com/kuma/kuma-0.1.1-centos ...

  5. 使用Maven创建一个普通java项目

    1.创建项目: 使用Maven目的是是我们能够轻松的管理各种别人写过的包 创建好之后,我们去找我们所需要的包:在mvnrepository.com中找自己所需要的包 例子: 最后将依赖写入pom.xm ...

  6. 将两个各有n个元素的有序表归并成一个有序表,其最多的比较次数

    最多的比较次数是当两个有序表的数据刚好是插空顺序的时候,比如:第一个序列是1,3,5,第二个序列是2,4,6,把第二个序列插入到第一个序列中,先把第二个序列中的第一个元素2和第一个序列依次比较,需要比 ...

  7. vue-axios interceptors

    import axios from 'axios' import cookie from 'js-cookie' const options = { baseURL: window.location. ...

  8. nginx之allow、deny

    allow和deny这两个指令的意思是指,允许ip和限制ip 在此之前不得不提一下,这两个指令是存在于ngx_http_access_module模块之中的 allow语法:allow address ...

  9. leetcode 221. 最大正方形

    题目描述: 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 思路分析: 一道动态规划的题.由于是正方形,首先单一的‘1’即为最小的正方形,接下来需要考察其外围区域 ...

  10. C++内联函数(C++ inline)详解

    使用函数能够避免将相同代码重写多次的麻烦,还能减少可执行程序的体积,但也会带来程序运行时间上的开销. 函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还 ...