两个超长字符串相加

Posted 冬马党

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个超长字符串相加相关的知识,希望对你有一定的参考价值。

思路:将他们转成int数组,然后按位相加,空间复杂度有点高,但时间复杂度为Max(O(M,N))

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String one = scanner.next();
            String two = scanner.next();
           addBigDight(one,two);
        }
    }

    private static void addBigDight(String one,String two){
        int oneLen = one.length();
        int twoLen = two.length();
        int resultLen = (oneLen > twoLen ? oneLen : twoLen ) + 1;
        int[] result = new int[resultLen];
        int oneIndex = oneLen - 1;
        int twoIndex = twoLen - 1;
        int index = 0;
        char[] oneChars = one.toCharArray();
        char[] twoChars = two.toCharArray();

        int[] oneArr = new int[oneLen];
        int[] twoArr = new int[twoLen];

        for (int i = 0; i < oneArr.length; i++) {
            oneArr[i] = oneChars[i] - ‘0‘;
        }
        for (int i = 0; i < twoChars.length; i++) {
            twoArr[i] = twoChars[i] - ‘0‘;
        }
        while (oneIndex >= 0 && twoIndex >= 0){
            result[index] += oneArr[oneIndex] + twoArr[twoIndex];
            if(result[index] > 9){
                result[index] -= 10;
                result[index + 1] = 1;
            }
            index++;
            oneIndex--;
            twoIndex--;
        }
        while (oneIndex >= 0){
            result[index] += oneArr[oneIndex];
            index++;
            oneIndex--;
        }
        while (twoIndex >= 0){
            result[index] += twoArr[twoIndex];
            index++;
            twoIndex--;
        }
        for (int i = index-1; i >= 0 ; i--) {
            System.out.print(result[i]);
        }
         System.out.println();
    }

}

 

以上是关于两个超长字符串相加的主要内容,如果未能解决你的问题,请参考以下文章

超长正数相加

关于c语言超长正整数相加的问题,。求高手指教!!!!!

每日一题 | day17(杨辉三角的变形 |超长正整数相加)

超长数运算

超长正整数相加, BigInteger, 华为

C++实现两个超大的字符数字相加的算法的代码