Thêm Một vào Mảng Số Nguyên

Nội dung bài toán

Cho một mảng số nguyên không rỗng đại diện cho một số nguyên không âm, hãy tăng số đó lên một đơn vị.

Số ở vị trí đầu tiên của mảng là chữ số hàng cao nhất. Mỗi phần tử trong mảng chỉ chứa một chữ số duy nhất. Bạn có thể giả định rằng số nguyên này không bắt đầu bằng số 0, trừ khi nó là số 0.

Ví dụ

Ví dụ 1:

Input: digits = [1,2,3]
Output: [1,2,4]
Giải thích: Mảng đầu vào đại diện cho số 123.

Ví dụ 2:

Input: digits = [4,3,2,1]
Output: [4,3,2,2]
Giải thích: Mảng đầu vào đại diện cho số 4321.

Ví dụ 3:

Input: digits = [9]
Output: [1,0]
Giải thích: Mảng đầu vào đại diện cho số 9. Khi tăng lên 1, ta được 10.

Yêu cầu

  • 1 <= digits.length <= 100
  • 0 <= digits[i] <= 9

Mã nguồn

package org.example;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // Nhập kích thước mảng
        int size = scanner.nextInt();
        // Tạo mảng với kích thước đã nhập
        int[] myArray = new int[size];

        System.out.println("Nhập " + size + " phần tử:");
        // Nhập các phần tử của mảng
        for (int i = 0; i < size; i++) {
            myArray[i] = scanner.nextInt();
        }
        scanner.close();

        // Tạo đối tượng để gọi phương thức non-static
        Main obj = new Main();
        int[] result = obj.addOne(myArray);
        System.out.println(Arrays.toString(result));
    }

    public int[] addOne(int[] digits) {
        int n = digits.length;
        for (int i = n - 1; i >= 0; i--) {
            if (digits[i] < 9) {
                digits[i]++;
                return digits;
            }
            digits[i] = 0;
        }
        // Trường hợp tất cả các chữ số đều là 9
        int[] newDigits = new int[n + 1];
        newDigits[0] = 1;
        return newDigits;
    }
}

Lưu ý

  1. Để in mảng, sử dụng Arrays.toString(re) hoặc Arrays.stream(re).mapToObj(String::valueOf).reduce((a, b) -> a + ", " + b).orElse("[]").
  2. Trong phương thức tĩnh, cần tạo đối tượng để gọi phương thức non-static.
  3. Khởi tạo mảng mới với kích thước lớn hơn 1 khi tất cả các chữ số đều là 9.

Thẻ: Java arrays Scanner Method Call Array Initialization

Đăng vào ngày 19 tháng 10 lúc 08:23