989. 数组形式的整数加法https://leetcode.cn/problems/add-to-array-form-of-integer/
难度简单226
整数的 数组形式 num
是按照从左到右的顺序表示其数字的数组。
- 例如,对于
num = 1321
,数组形式是[1,3,2,1]
。
给定 num
,整数的 数组形式 ,和整数 k
,返回 整数 num + k
的 数组形式 。
示例 1:
输入:num = [1,2,0,0], k = 34 输出:[1,2,3,4] 解释:1200 + 34 = 1234
示例 2:
输入:num = [2,7,4], k = 181 输出:[4,5,5] 解释:274 + 181 = 455
示例 3:
输入:num = [2,1,5], k = 806 输出:[1,0,2,1] 解释:215 + 806 = 1021
提示:
1 <= num.length <= 104
0 <= num[i] <= 9
num
不包含任何前导零,除了零本身1 <= k <= 104
题解:
js最长只有16位,面对一个超过这个位数的数字时就会出错,这时可以使用bigint,注意bigint不能与普通的number相加,必须将k也转换为bigint,最后的n只是一个标志,不会对加减乘除有影响,使用toString将bigint转为字符串。
/**
* @param {number[]} num
* @param {number} k
* @return {number[]}
*/
var addToArrayForm = function(num, k) {
let new_num = BigInt(num.join(""));
let sum = BigInt(k);
sum += new_num;
//console.log(sum);
let new_arr = sum.toString().split("");
//console.log("return :", new_arr);
return new_arr;
};