大数加法

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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 听起来好像是个编程语言都应该自带的功能,但是通过在编程语言里实现加法和减法会让别人看到你是否了解计算机的原理这个通...
    Wilbur_阅读 2,350评论 0 0
  • 描述 对于给定的算术表达式,按规则输出计算结果,仅包含加法和大小判断。 输入 一行字符串,为加号、大于、小于( +...
    CPPZWW阅读 3,233评论 0 0
  • 1、 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MI...
    亮涛阅读 4,158评论 0 0
  • 1 加法-只支持正整数相加 2 减法-只支持a>=b 3、 至于任意a+b,a,b可以为负整数可以分开讨论
    夜心_d5bb阅读 2,854评论 0 0
  • 辅导孩子C++编程,实现大数的加法,思路比较直接,就是模拟手工运算,逐位运算,如果有进位则上一位加一。先程序实现的...
    寻找无名的特质阅读 7,093评论 0 1