【练习9】大数加法

链接:大数加法__牛客网 (nowcoder.com)

分析:

当作竖式计算

import java.util.*;


public class Solution {
    public String solve (String s, String t) {
      StringBuffer ret = new StringBuffer();
      //i是字符串s的最后一个字符的索引
      int i = s.length() - 1;
      //j是字符串t的最后一个字符的索引
      int j = t.length() - 1;
      //tmp表示进位
      int tmp = 0;
      //当s、t、tmp都不为0的时候,表示仍有数字待处理
      while(i >= 0 || j >= 0 || tmp != 0){
        //s中有未处理的字符时,使用charAt定位i索引对应的字符,i--确保从低位处理到高位,-'0'是字符转换为整数的操作。
        if(i >= 0) tmp += s.charAt(i--) - '0';
        if(j >= 0) tmp += t.charAt(j--) - '0';
        //求出个位
        ret.append((char)(tmp % 10 + '0'));
        //求出进位
        tmp /= 10;
      }
      //反转ret对象,因为是从低位到高位添加的,并转换为字符串类型
      return ret.reverse().toString();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值