練習のために、配列に配置し、対応する要素を配列に追加することで、2 つの非常に長い整数を追加しようとしています。ただし、キャリー オーバーを追加しようとすると、問題が発生します (つまり、キャリー オーバーは 1 です。たとえば、199 + 199 = 398 を実行すると、10 の位に追加されます)。
167 + 189 を実行すると、356 という正しい答えが得られます。ただし、この例 (199 + 199) では、398 ではなく 288 が得られます。 199 + 199、167 + 189 でキャリーオーバーがうまく機能したら?
if (stringNumOneLength == stringNumTwoLength)
    {   int answer; 
        int carryOver = 0;
        int answerArray[] = new int[stringNumOneLength + 1];
        for (int i = 1; i <= stringNumTwoLength; i = i + 1)
        {            
            answer = Character.getNumericValue(stringNumOne.charAt(stringNumOneLength - i)) + Character.getNumericValue(stringNumTwo.charAt(stringNumTwoLength - i) + carryOver);
            System.out.println(answer);
            if (answer >= 10)
            {
                for (int j = 0; j <= 9; j = j + 1)
                {
                    if (10 + j == answer) 
                    {
                        carryOver = 1;
                        answer = j;
                        System.out.println("The carryover is " + carryOver + ".");
                    }
                }
            }
            else
            {
                carryOver = 0;
            }
            answerArray[stringNumOneLength + 1 - i] = answer;
        }
        System.out.println(Arrays.toString(answerArray));
    }
出力は次のとおりです。
[1、9、9]
[1、9、9]
18
繰り越しは1です。
8
2
[0、2、8、8]