给定一组自然数,数字的值有可能会大于2^64 ,要求计算出所有数字的和-笔试面试资料

这是qklbishe.com第6337 篇笔试面试资料
提供答案分析,通过本文《给定一组自然数,数字的值有可能会大于2^64 ,要求计算出所有数字的和-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

给定一组自然数,数字的值有可能会大于2^64 ,要求计算出所有数字的和

给定一组自然数,数字的值有可能会大于2^64 ,要求计算出所有数字的和 李厘里
    public static String sum(List<String> numList) {         numList = numList.stream()                 .filter(num -> StringUtils.isNotBlank(num))                 .map(num -> num.replaceAll(" ", ""))                 .collect(Collectors.toList());         if (CollectionUtils.isEmpty(numList)) {             return "0";         }         StringBuffer sum = new StringBuffer(numList.get(0));         for (int i = 1; i < numList.size(); i++) {             StringBuffer next = new StringBuffer(numList.get(i));             Integer sumLength = sum.length();             Integer nextLength = next.length();              Stack<Character> stack = new Stack<>();             boolean hasCarry = false;              while (sumLength > 0 || nextLength > 0 || hasCarry) {                 Integer sumNum = 0;                 Integer nextNum = 0;                  if (sumLength > 0) {                     String sumLast = sum.substring(sumLength - 1, sumLength);                     sumNum = Integer.parseInt(sumLast);                 }                  if (nextLength > 0) {                     String nextLast = next.substring(nextLength - 1, nextLength);                     nextNum = Integer.parseInt(nextLast);                 }                  Integer thisTurnInt = sumNum + nextNum + (hasCarry ? 1 : 0);                 Character thisTurn =                          new Character(thisTurnInt.toString().charAt(thisTurnInt.toString().length() - 1));                 stack.push(new Character(thisTurn));                  if (thisTurnInt > 9) {                     hasCarry = true;                 } else {                     hasCarry = false;                 }                  sumLength--;                 nextLength--;             }              sum = new StringBuffer();             while (stack.size() > 0) {                 sum.append(stack.pop());             }         }          return sum.toString();     }

今天 14:39:36 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 给定一组自然数,数字的值有可能会大于2^64 ,要求计算出所有数字的和-笔试面试资料

提供最优质的资源集合

立即查看 了解详情