Kiểm tra xem một số nguyên có phải là số hạnh phúc hay không trong Java

Học sinh học lập trình

Số hạnh phúc là một số tự nhiên mà khi ta lấy tổng các bình phương các chữ số của nó và lặp lại quá trình này cho đến khi kết quả cuối cùng là 1 thì được gọi là số hạnh phúc. Ngược lại, nếu quá trình này không dừng lại ở số 1 thì đó không phải là số hạnh phúc.

Để kiểm tra xem một số nguyên có phải là số hạnh phúc hay không trong Java, ta có thể thực hiện như sau:

public static boolean isHappyNumber(int number) {
    int sum = 0;
    int current = number;
    Set<Integer> visited = new HashSet<>();
    
    while (sum != 1 && !visited.contains(current)) {
        visited.add(current);
        sum = 0;
        while (current > 0) {
            int digit = current % 10;
            sum += digit * digit;
            current /= 10;
        }
        current = sum;
    }
    
    return sum == 1;
}

Trong đoạn code trên, ta sử dụng một Set để lưu trữ các số đã được xử lý để tránh lặp lại việc tính toán cho các số đã xử lý trước đó. Ta lặp lại quá trình tính tổng các bình phương các chữ số của số đầu vào cho đến khi tổng này bằng 1 hoặc số đang xử lý đã được xử lý trước đó. Nếu tổng cuối cùng bằng 1 thì trả về true, ngược lại trả về false.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *