题目地址 https://www.acwing.com/problem/content/description/793/

题目描述
给定两个正整数,计算它们的和。

输入格式
共两行,每行包含一个整数。

输出格式
共一行,包含所求的和。

算法
很明显 输入会超过64位 也就是即使long long 类型也不能进行常规加法
那么输入就是用string 接收字符串 来模拟加法

加法主要是三个数字的相加 数字a 数字b 以及进位
所以 int sum = (a - '0') + (b - '0') + next;
然后得到除开进位后本地应该显示的数字 int local = sum % 10;
计算进位 next = sum / 10;
由于加法是从最小位开始的 所以字符串做了逆转

reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
还要考虑数字a 和数字b 位数不同的情况

while (i < a.size() && i < b.size()) {
add(a[i], b[i], next);
i++;
}

while (i < a.size()) {
add(a[i], '0', next);
i++;
}

while (i < b.size()) {
add('0', b[i], next);
i++;
}
还有一种特殊情况,最后一位还要进位
也就是最后的和 比最大的数还要多一位1 记得最后判断下

if (next == 1)
v.push_back(1);
最后显示记录结果 记得也要做逆转

reverse(v.begin(), v.end());
for (int i = 0; i < v.size(); i++)
{
cout << v[i];
}

 #include <iostream>
#include <string>
#include <algorithm>
#include <vector> using namespace std; string a,b;
vector<int> v; void add(int a,int b,int& next)
{
int sum = (a - '') + (b - '') + next;
int local = sum % ;
v.push_back(local);
next = sum / ;
} int main()
{
cin >> a >> b; reverse(a.begin(),a.end());
reverse(b.begin(), b.end()); int i = ; int next = ;
while (i < a.size() && i < b.size()) {
add(a[i],b[i],next);
i++;
} while (i < a.size()) {
add(a[i],'',next);
i++;
} while (i < b.size()) {
add('',b[i],next);
i++;
}
if (next == )
v.push_back();
reverse(v.begin(), v.end());
for (int i = ; i < v.size(); i++)
{
cout << v[i];
} return ; } 作者:defddr
链接:https://www.acwing.com/solution/AcWing/content/2074/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最新文章

  1. [LeetCode] Power of Two 判断2的次方数
  2. 我用ANDROID STUDIO开发,页面上总包这个警告,很烦!网上说是sdk版本问题,但是我是基于25开发的,最小版本也是19,有没有老司机啊?3克油
  3. 横版CG场景
  4. 单例模式(Java)
  5. 自己用C语言写单片机PIC16 serial bootloader
  6. 【精心挑选】15款最好的 jQuery 网格布局插件(Grid Plugins)
  7. 回调函数中使用MFC类的成员或对话框控件的简单方法
  8. 【codevs1191】数轴染色 线段树 区间修改+固定区间查询
  9. 在csdn里markdown感受
  10. Go Deeper(2010成都现场赛题)(2-sat)
  11. 刑事案件的构成要素 zt
  12. C# DataTable的詳細使用方法
  13. chrome浏览器打开网页,总是跳转到2345主页的解决方法 2345.com 绑架主页
  14. python抓取网页图片
  15. crm创建和编辑全局选项集
  16. jenkins 设置自动发送邮件
  17. sed从入门到深入修炼目录
  18. flask websocker
  19. laravel整理笔记(一)
  20. Java并发编程的艺术读后总结

热门文章

  1. 华为hcnp r&amp;s考试一共有三门,R&amp;S-IERS,R&amp;S-IENP,R&amp;S-IEEP
  2. jmeter相关知识学习记录
  3. 《推送开发全面盘点当前Android后台保活方案的真实运行效果》
  4. 解决IDEA中的DashBoard 不显示端口号
  5. SpringBoot日志原理解析
  6. VUE Error: listen EADDRNOTAVAIL: address not available
  7. SpringCloud的入门学习之概念理解、Ribbon负载均衡入门
  8. Add a Parametrized Action 添加带参数的按钮
  9. Inherit from the Business Class Library Class 继承自Business类(EF)
  10. HTML元素分类 块级元素 内联元素 块级内联元素