两个无限大的数字相加,以最快最简单的方式实现以下

293 阅读1分钟

直接上代码

    function adds(a,b){
    	let len_a = a.length;
    	let len_b = b.length;
    	if(len_a>len_b){
    		b = b.padStart(len_a,'0');
    	}else{
    		a = a.padStart(len_b,'0');
    	}
    	let _a = a.split("").map((item)=> Number(item));
    	let _b = b.split("").map((item)=> Number(item));
    	let max = _a.length;
    	let temp = 0;
    	let _arr = [];
    	for(let i=1;i<=max;i++){
    		if(temp+_a[max-i]+_b[max-i]>9){
    			_arr.unshift(temp+_a[max-i]+_b[max-i]-10);
    			temp = 1;
    		}else{
    			_arr.unshift(temp+_a[max-i]+_b[max-i]);
    			temp = 0;
    		}
    	}
    	if(temp) _arr.unshift(temp);
    	console.log(_arr)
    	return _arr.join("");
    }
    var a1 = "19982";
    var b1 = "3299";
    console.log(adds(a1,b1),19982+3299);

欢迎留言,提供其他更简单的方式哦