Kiểm tra số nguyên dương n có phải là số đối xứng hay không trong Python và C++

Số đối xứng là những số mà bạn có thể đọc từ trái sang phải hoặc từ phải sang trái và giữ nguyên giá trị.

Dưới đây là một số ví dụ về các số đối xứng:

  1. Số đối xứng chẵn số chữ số: 1221. Số này khi đảo ngược vẫn là 1221.
  2. Số đối xứng lẻ số chữ số: 12321. Số này khi đảo ngược vẫn là 12321.
  3. Số đối xứng với một chữ số: 7. Vì chỉ có một chữ số, nó được coi là số đối xứng.
  4. Số nguyên dương không phải số đối xứng: 12345. Số này không đối xứng vì nó không giống với phiên bản đảo ngược của nó, tức là 54321.
  5. Số 0: 0 cũng được xem xét là số đối xứng vì nó không thay đổi khi đảo ngược.

Kiểm tra số nguyên dương n có phải là số đối xứng hay không trong Python

Cách 1: Chuyển thành chuỗi
























n = int(input("Nhập số nguyên dương n: "))  # Nhập số nguyên dương từ người dùng

# Đảm bảo n là số nguyên dương
if n <= 0:
    print("Vui lòng nhập số nguyên dương.")
else:
    # Chuyển số nguyên n thành chuỗi
    str_n = str(n)
    
    # So sánh chuỗi gốc với chuỗi đảo ngược
    if str_n == str_n[::-1] 


:
        print("Số nguyên dương n là số đối xứng.")
    else:
        print("Số nguyên dương n không phải là số đối xứng.")

Trong ví dụ này:

  1. Bạn nhập số nguyên dương n từ người dùng và đảm bảo rằng n là số nguyên dương (lớn hơn 0).
  2. Chúng ta chuyển số nguyên n thành một chuỗi str_n bằng cách sử dụng hàm str().
  3. Sử dụng phép cắt chuỗi [::1] , chúng ta tạo một phiên bản đảo ngược của chuỗi str_n.
  4. Sau đó, chúng ta so sánh chuỗi gốc str_n với chuỗi đảo ngược của nó. Nếu chúng giống nhau, thì số n là số đối xứng; ngược lại, nó không phải là số đối xứng.
Read:   Đếm số lượng ước số của số nguyên dương n Trong Python và C++

Quá trình này giúp xác định một cách đơn giản và hiệu quả xem một số nguyên dương có phải là số đối xứng hay không.

Cách 2: Đảo ngược và so sánh




















def is_palindrome(n):
    if n <= 0:
        return False  # Số nguyên âm không phải là số đối xứng

    original_n = n
    reverse_n = 0

    while n > 0:
        digit = n % 10
        reverse_n = reverse_n * 10 + digit
        n //= 10

    return original_n == reverse_n

n = int(input("Nhập số nguyên dương n: "))

if is_palindrome(n):
    print("Số nguyên dương n là số đối xứng.")
else:
    print("Số nguyên dương n không phải là số đối xứng.")

Trong ví dụ này:

  1. Bạn nhập số nguyên dương n từ người dùng và đảm bảo rằng n là số nguyên dương (lớn hơn 0).
  2. Chúng ta xây dựng một hàm is_palindrome để kiểm tra số đối xứng.
  3. Trong hàm is_palindrome, chúng ta sử dụng hai biến original_n (để lưu giá trị gốc của n) và reverse_n (để lưu giá trị của n sau khi đảo ngược).
  4. Chúng ta sử dụng một vòng lặp để lặp qua từng chữ số của n và xây dựng reverse_n bằng cách thêm chữ số cuối cùng vào bên phải của reverse_n. Đồng thời, chúng ta loại bỏ chữ số cuối cùng của n.
  5. Cuối cùng, chúng ta so sánh original_nreverse_n. Nếu chúng giống nhau, số n là số đối xứng; ngược lại, nó không phải là số đối xứng.

Quá trình này giúp kiểm tra xem một số nguyên dương có phải là số đối xứng hay không mà không cần chuyển đổi sang chuỗi.

Kiểm tra số nguyên dương n có phải là số đối xứng hay không trong C++
































#include <iostream>

bool isPalindrome(int n) {
    if (n <= 0) {
        return false; // Số nguyên âm không phải là số đối xứng
    }

    int originalN = n;
    int reverseN = 0;

    while (n > 0) {
        int digit = n % 10;
        reverseN = reverseN * 10 + digit;
        n /= 10;
    }

    return originalN == reverseN;
}

int main() {
    unsigned int n; // Số nguyên dương n
    std::cout << "Nhập số nguyên dương n: ";
    std::cin >> n; // Nhập số nguyên dương từ người dùng

    if (isPalindrome(n)) {
        std::cout << "Số nguyên dương n là số đối xứng." << std::endl;
    } else {
        std::cout << "Số nguyên dương n không phải là số đối xứng." << std::endl;
    }

    return 0;
}

Trong ví dụ này:

  1. Bạn nhập số nguyên dương n từ người dùng và đảm bảo rằng n là số nguyên dương (lớn hơn 0).
  2. Chúng ta xây dựng một hàm isPalindrome để kiểm tra số đối xứng.
  3. Trong hàm isPalindrome, chúng ta sử dụng hai biến originalN (để lưu giá trị gốc của n) và reverseN (để lưu giá trị của n sau khi đảo ngược).
  4. Chúng ta sử dụng một vòng lặp để lặp qua từng chữ số của n và xây dựng reverseN bằng cách thêm chữ số cuối cùng vào bên phải của reverseN. Đồng thời, chúng ta loại bỏ chữ số cuối cùng của n.
  5. Cuối cùng, chúng ta so sánh originalNreverseN. Nếu chúng giống nhau, số n là số đối xứng; ngược lại, nó không phải là số đối xứng.
Read:   Tính S(n) = 1 + ½ + 1/3 + … + 1/n Lập trình bằng Python và C++

Quá trình này giúp kiểm tra xem một số nguyên dương có phải là số đối xứng hay không trong C++ mà không cần chuyển đổi sang chuỗi.

Hình đại diện của người dùng

admin

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 *