题解 | #大数加法#

大数加法

https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475

import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
        // write code here
        //创建容器sb用来存放结果值
        StringBuilder sb = new StringBuilder();
        //定义变量i,j用来指向s,t数组的最后一位
        int i = s.length()-1;
        int j = t.length()-1;
        //count用来记录位数的移动
        int count = 0;
        //循环条件内判断i,j是否指向数组的最后一位,如果i,j小于0则数据越界,count记录数组位数
        //循环一次count往前进1
        for(;i >= 0 || j >= 0 || count != 0; i--,j--){
            //将数组中的最后一位分别跳出并赋值给变量num1和num2
            int num1 = i>=0?s.charAt(i)-'0':0;
            int num2 = j>=0?t.charAt(j)-'0':0;
            //对两数组中的最后一位上的值和count相加取摸 求出最高位
            sb.append((num1+num2+count)%10);
            //将count前进1位
            count = (num1+num2+count)/10;

        }
        //将容器的值反转并转化成字符串输出
        return sb.reverse().toString();
        
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务