int digit1 = i >= 0 ? num1[i--] - '0' : 0; // num1的当前位,如果i<0则为0 int digit2 = j >= 0 ? num2[j--] - '0' : 0; // num2的当前位,如果j<0则为0 int sum = digit1 + digit2 + carry; // 当前位的和加上进位...
转为字符串:‘135’ function solution(num1) { var arr = num1.split(','); var a1 = arr[0].split('').reverse(); var a2 = arr[1].split('').reverse(); if (a1.length >= a2.length) { var brr = []; brr[0] = 0; for (var i = 0; i <= a1.length - 1; i++) {...
num1[i] - '0' : 0; int y = j >= 0 ? num2[j] - '0': 0; //这里注意 //1.字符要 -' 0 '转换成数字为后面加法运算做准备 //2.短的字符遍历完了后要补0 int result = x + y + add;//注意加进位,第一次进位为0 ans += '0' + result % 10;//接收每次相加结果,数字要转成...
int j = st.charAt(2)-'0'; System.out.println(i);//51,是ASCII码表中的‘3’对应的值 System.out.println(j);//3 代码分析: public String addStrings(String num1, String num2) { //双指针 int i = num1.length()-1; int j = num2.length()-1; //carry是进位 int carry = 0; //...
varaddStrings=function(num1,num2){// 数组的两两元素相加得到total,如果total大于10的话,就往下一位进total-10letres=''letcarry=0leti=num1.length-1letj=num2.length-1while(i>=0||j>=0){lettemp=Number(num1[i])+Number(num2[j])+carryif(i<0){temp=Number(num2[j])+carry ...
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。输入: num1 = “2”, num2 = “3”输出: “6”输入: num1 = “123”, num2 = “456”输出: “56088”思路:其实就是手写乘法的过程,首先我们要知道一个数学定理:两个长度分别为n和m...
字符串相加:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
functionmultiplication(s,t){if(!s.length || !t.length)return;if(s.charAt(0) == 0 || t.charAt(0) == 0) {return'0'} let newS= s.split(''), newT= t.split(''),//12 [1,2]arr =[]; console.log(newS)for(let i = 0; i < newS.length; i++){for(let j = 0; j <...
字符串相乘:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。说明: num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如 BigInteger)或直接将...
num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 解题: 初次看到这个题目,没有考虑到大数相加问题,所以直接的思路是: 字符串转化为数组,然后反转 循环遍历数组,从数组第...