NC-大数相加

题目:
在这里插入图片描述
解决:现将二者长度补充0至长度相等,模拟数据加法从尾部开始相加,并添加进位标志进位为多少,初始为0.
int 转 char,char转int
代码:

    public String solve (String s, String t) {
        // write code here
        int len1 = s.length();
        int len2 = t.length();
        if(len1<len2)
            s = extendString(s,len2);
        if(len1>len2)
            t = extendString(t,len1);
        int len = Math.max(len1,len2);
        int tag = 0;
        StringBuffer sBuffer = new StringBuffer();
        for(int i =len-1;i>=0;i--){
            int a = s.charAt(i) - '0';
            int b = t.charAt(i) - '0';
            int sum = a+b+tag;
            tag = sum / 10;
            char r = (char)(sum % 10 + '0');
            sBuffer.insert(0,r);
        }
        if(tag!=0)
            sBuffer.insert(0,(char)(tag + '0'));
        return new String(sBuffer);
    }
    public static String extendString(String s, int len){
        StringBuffer sBuffer = new StringBuffer(s);
        for(int i =0;i<len-s.length();i++){
            sBuffer.insert(0,'0');
        }
        return new String(sBuffer);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值