算法1-大数加法

描述
以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param num1 string字符串 表示第一个整数
     * @param num2 string字符串 表示第二个整数
     * @return string字符串
     */
      public String solve(String num1, String num2) {
        //生明一个可变字符串,存储将来两数相加的
        StringBuilder s=new StringBuilder();
        //字符串的下标,是从零开始的i j是代表  add将来表示进位数 一般为1
        int i=num1.length()-1,j=num2.length()-1;int add=0;
        //循环遍历
        for(;i>=0||j>=0||add!=0;i--,j--)
        {
            //n1 n2 前面是用int  说明类型为int类型
            //因为得到的字符进行运算的时候是以 ASCII 码对应的数字来运算的,
            //'0' ~ '9' 对应 48 ~ 57 ,所以通常用 -'0' 来得到真正对应的数字。
            int n1=i>=0?num1.charAt(i)-'0':0;
            int n2=j>=0?num2.charAt(j)-'0':0;
            //合并后对应的位置的数,加到字符串后面(append()方法)
            s.append((n1+n2+add)%10);
            //进位数
            add=(n1+n2+add)/10;
        }
         //由于是从后往前遍历,所以需要翻转一下
        s.reverse();
          //转换为字符串
        return s.toString();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值