1.大数加法

题目描述

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

(字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成)

示例1

输入

"1","99"

返回值

"100"

代码实现

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
        int m = s.length();
        int n = t.length();
        if (m == 0) return t;
        if (n == 0) return s;

        char[] sArray = s.toCharArray();
        char[] tArray = t.toCharArray();
        StringBuilder result = new StringBuilder();
        int bit = 0;
        int sum = 0;
        while(m != 0 && n != 0) {
           sum = (sArray[--m] - '0') + (tArray[--n] - '0');
           sum += bit;
           bit = sum / 10;
           result.append(sum % 10);
        }
        while (m > 0) {
            sum = sArray[--m] - '0';
            sum += bit;
            bit = sum / 10;
            result.append(sum % 10);
        }

        while (n > 0) {
            sum = tArray[--n] - '0';
            sum += bit;
            bit = sum / 10;
            result.append(sum % 10);
        }
        if (bit > 0) {
            result.append(bit);
        }
        return result.reverse().toString();
    }
}

猜你喜欢

转载自blog.csdn.net/xiao__jia__jia/article/details/113471751