• 特大数字之和,返回结果是字符串(考虑到数字特别大,如果相加会产生e)


    做这个题时,最总要的一步思路就是,先让长度一致,然后从个位开始,每一个与每一个数字相加,如果大于10,则下一次另外两个数相加时加1

    function add(a, b) {
    var arr = a.split("");
    var brr = b.split("");
    var crr = [];
    var i;
    var n;
    var flag = false;判断两个数字相加是否大于10;
    var f = false;判断头两位相加是否大于10
    if(arr.length<=brr.length){
    i = brr.length-1;
    for(var j=arr.length;j<brr.length;j++){
    arr.unshift("0");
    }
    }else{
    i = arr.length-1;
    for(var j=brr.length;j<arr.length;j++){
    brr.unshift("0");
    }
    }
    for(i;i>=0;i--){
    if(flag){上一级的两个数字相加大于10
    n = Number(arr[i])+Number(brr[i])+1;
    console.log(n);
    }else{
    n = Number(arr[i])+Number(brr[i]);
    }
    if(n>=10){两个数字相加大于10
    crr.unshift(n%10);
    flag = true;
    if(i==0){头部两个数字相加
    f = true;
    }
    }else{
    crr.unshift(n);
    flag = false;
    }
    }
    if(f){头部两个数字相加大于10
    crr.unshift(1);
    }
    if(crr[0]==0){
    crr.shift();
    }
    return crr.join("");
    }
    console.log(add("123","321"));
    console.log(add("11","99"));
    console.log(add("9","11"));
    console.log(add("10000000000000000000000000000000000000000000000000000000000000000","10000000000000000000000000000000000000000000000000000000000000000000000000000000000000"));

  • 相关阅读:
    今天想写东东
    [BTS]Event ID: 5803 错误处理办法
    微软技术能力测试工具V0.1试用
    PMI,PMBOK,PMP,Input,Output,Update
    [BTS]5719, 5753错误处理?
    向您推荐Groove BizTalk Workspace!
    [BTS]Adapter Pack调用SAP RFC接口时间格式出错解决办法
    [BTS]BizTalk学习之Functoid篇(ID CrossReferences)
    健身减肥计划
    [BTS] Event ID 5740
  • 原文地址:https://www.cnblogs.com/xinyouhunran/p/9811553.html
Copyright © 2020-2023  润新知