大数加法

2021-03-16  本文已影响0人  Volcaner
image.png
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 计算两个数之和
 * @param s string字符串 表示第一个整数
 * @param t string字符串 表示第二个整数
 * @return string字符串
 */
function solve( s ,  t ) {
  // write code here
  let _a = parseInt(s);
  let _b = parseInt(t);
  if(typeof _a === 'number' && typeof _b === 'number') {
    let _arrA = s.split('');
    let _arrB = t.split('');
    let _arrMax = _arrA.length > _arrB.length ? _arrA : _arrB;
    let _arrMin = _arrA.length > _arrB.length ? _arrB : _arrA;
    _arrMax = _arrMax.reverse();
    _arrMin = _arrMin.reverse();

    let temp = 0;
    let _newArr = [];
    let len = _arrMax.length;
    let i = 0;
    while(i <= len || temp > 0) {
      let _m = parseInt(_arrMax[i]);
      let _n = parseInt(_arrMin[i]);
      if(!isNaN(_m) && !isNaN(_n)) {
        let _gewei = (_m + _n + temp) % 10;
        temp = Math.floor((_m + _n + temp) / 10);
        _newArr.push(_gewei);
      }
      else if(isNaN(_n)) {
        if(isNaN(_m)) {
          if(temp > 0) {
            _newArr.push(temp);
            break;
          } 
          else break; 
        }
        else {
          let _gewei = (_m + temp) % 10;
          temp = Math.floor((_m + temp) / 10);
          _newArr.push(_gewei);
        }
      }
      I++;
    }

    _newArr = _newArr.reverse();
    return _newArr.join('');
  }

  return null;
}
上一篇 下一篇

猜你喜欢

热点阅读