How to increment an integer represented as an integer array of digits by one in Java

1 Answer

0 votes
import java.util.ArrayList;
import java.util.Arrays;

public class IncrementDigits {

    public static ArrayList<Integer> incrementByOne(ArrayList<Integer> digits) {
        int carry = 1;

        for (int i = digits.size() - 1; i >= 0; i--) {
            int sum = digits.get(i) + carry;
            if (sum == 10) {
                digits.set(i, 0);
                carry = 1;
            } else {
                digits.set(i, sum);
                carry = 0;
                break;
            }
        }

        if (carry == 1) {
            digits.add(0, 1); // Insert 1 at the beginning
        }

        return digits;
    }

    public static void main(String[] args) {
        ArrayList<Integer> digits = new ArrayList<>(Arrays.asList(9, 9, 9));

        incrementByOne(digits);

        System.out.print("Result: ");
        for (int digit : digits) {
            System.out.print(digit + " ");
        }
        System.out.println();
    }
}



/*
run:

Result: 1 0 0 0 

*/

 



answered Jul 2 by avibootz
...