Java_大数加法

Java_大数加法

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

示例:

 输入:
     "1","99"
 返回值:
     "100"
 说明:
     1+99=100

思路:

  1. 第一种方法:强制类型转换(面试中不要直接使用,题目的考点在于模拟 加法的运算过程 )

  2. 第二种方法:

    1. 获取2个字符串长度,进行遍历

    2. 对应个、十、百... 位数进行取值,再运算,取余,对余数追加

 

代码:

    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     *
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public static String solve(String s, String t) {
        // write code here
        Long m = Long.valueOf(s);
        Long n = Long.valueOf(t);
        Long a = m + n;
        return a.toString();
    }

    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     *
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public static String solve1 (String s, String t) {
        // write code here
        StringBuilder sb = new StringBuilder();
        int sl = s.length() - 1;
        int tl = t.length() - 1;
        int enter = 0;
        int remainder = 0;
        while (sl >= 0 || tl >= 0 || enter > 0) {
            int snum = sl >= 0 ? s.charAt(sl) - '0' : 0; // int 和 char可以直接运算
            int tnum = tl >= 0 ? t.charAt(tl) - '0' : 0;
            int r = snum + tnum + enter;
            enter = r / 10;
            remainder = r % 10;
            sb.append(remainder);
            sl--;
            tl--;
        }
        return sb.reverse().toString();
    }
原文地址:https://www.cnblogs.com/mmdz/p/15608893.html