https://leetcode.com/problems/add-to-array-form-of-integer/

For a non-negative integer X, the array-form of X is an array of its digits in left to right order.  For example, if X = 1231, then the array form is [1,2,3,1].

Given the array-form A of a non-negative integer X, return the array-form of the integer X+K.

Example 1:

Input: A = [1,2,0,0], K = 34
Output: [1,2,3,4]
Explanation: 1200 + 34 = 1234

Example 2:

Input: A = [2,7,4], K = 181
Output: [4,5,5]
Explanation: 274 + 181 = 455

Example 3:

Input: A = [2,1,5], K = 806
Output: [1,0,2,1]
Explanation: 215 + 806 = 1021

Example 4:

Input: A = [9,9,9,9,9,9,9,9,9,9], K = 1
Output: [1,0,0,0,0,0,0,0,0,0,0]
Explanation: 9999999999 + 1 = 10000000000

Note:

  1. 1 <= A.length <= 10000
  2. 0 <= A[i] <= 9
  3. 0 <= K <= 10000
  4. If A.length > 1, then A[0] != 0

代码:

class Solution {
public:
vector<int> addToArrayForm(vector<int>& A, int K) {
int n = A.size();
vector<int> ans;
string words1 = toString(K), words2 = "";
for(int i = 0; i < n; i ++)
words2 += ('0' + A[i]);
string sum = addStrings(words1, words2);
for(int i = 0; i < sum.length(); i ++)
ans.push_back(sum[i] - '0');
return ans;
}
string toString(int x) {
string s = "";
while(x) {
s += (x % 10) + '0';
x /= 10;
}
for(int i = 0; i < s.length() / 2; i ++)
swap(s[i], s[s.length() - i - 1]);
return s;
}
string addStrings(string num1, string num2) {
string c = "";
int len1 = num1.length();
int len2 = num2.length();
int len = max(len1, len2);
for(int i = len1; i < len; i ++)
num1 = "0" + num1;
for(int i = len2; i < len; i ++)
num2 = "0" + num2;
int ok = 0;
for(int i = len - 1; i >= 0; i --) {
char temp = num1[i] + num2[i] - '0' + ok;
if(temp > '9') {
ok = 1;
temp -= 10;
}
else ok = 0;
c = temp + c;
}
if(ok) c = "1" + c;
return c;
}
};

  数组模拟大数加法

 

最新文章

  1. border-radius四个值的问题
  2. gridview里找到控件
  3. android开发中的问题总结(一)
  4. 使用tomcat部署jsp程序
  5. Atitit图片复制父目录给你设计的实现 基于win 图片浏览器
  6. 由node-webkit想到
  7. jsp页面显示数据库乱码
  8. 如何解决paramiko执行与否的问题
  9. Linux学习笔记总结--memcached配置
  10. node c#
  11. android UI进阶之style和theme的使用
  12. String,StringBuffer和StringBuilder的异同
  13. jmeter日记
  14. 一些android开发实用性网站记录
  15. 前端异步技术之Promise
  16. putty导出、导入数据库
  17. MySQL慢查询日志配置方式 slow_query_log
  18. 洛谷 P4378 [USACO18OPEN]Out of Sorts S(树状数组求冒泡排序循环次数)
  19. Java 发送SOAP请求调用WebService,解析SOAP报文
  20. JS_SINA股票接口

热门文章

  1. MySQL 系列(四) 主从复制、读写分离、模拟宕机、备份恢复方案生产环境实战
  2. LeetCode算法题-Power of Four(Java实现-六种解法)
  3. February 11th, 2018 Week 7th Sunday
  4. C语言 大小写字母转换
  5. 【工具大道】使用SSH远程登录Mac 电脑
  6. 寒假特训——I - Fair
  7. mysql数据权限的分配
  8. Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
  9. Gps定位和wifi定位和基站定位的比较
  10. move或rebuild lob分区对象