1. Bài tập kiểm tra xem N có phải là một số đối xứng hay không trong C

Bài tập cơ bản này ta có thể có hướng giải quyết là sử dụng vòng lặp while trong ngôn ngữ lập trình C.

Đầu vào sẽ là một biến nguyên dương N,  yêu cầu của bài toán là kiểm tra xem N có phải là một số đối xứng hay không.

2. Lời giải

Đầu tiên ta phải tìm hiểu về số đối xứng, vậy số đối xứng là gì ?

Một số được coi là số đối xứng nếu như đọc từ trái qua phải, hay từ phải qua trái số đó đều được số giống nhau. Bởi vậy để kiểm tra một số có phải là số đối xứng hay không, chúng ta đơn giản chỉ cần đảo ngược số này và kiểm tra số thu về có bằng với số đã cho hay không.

Ví dụ số 121 là số đối xứng.

Để giải được bài tập kiểm tra xem N có phải là một số đối xứng hay không trong C bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản và cách sử dụng vòng lặp trong C.

Các bước thực hiện bài toán như sau:

Bước 1: Khai báo biến int N để gán giá trị của N.

Bước 2: Nhập vào N với điều kiện N>=0, nếu không yêu cầu nhập lại.

Bước 3: Khai báo biến int SoChuSo = (int)log10((float)N) + 1 đùng để tính số chữ số của N, khai báo biến int SoNghichDao = 0 dùng để gán giá trị số nghịch đảo của N, khai báo biến int gan = N đùng để gán giá trị bằng N.

Bước 4: Ta sử dụng vòng lặp while với điều kiện là khi biến gan !=0  thì vòng lặp tiếp tục, khai báo biến int ChuSo = gan % 10 để lấy chữ số ra , biến gan /=10 , SoNghichDao += ChuSo * pow(10.0, –SoChuSo) tính số nghich đảo của N.

Bước 5: Sử dụng if với diều kiện nếu SoNghichDao=N thì in ra “N la so doi xung!” còn ngược lại in ra “N khong phai la so doi xung!”.

Chương trình giải bài tập kiểm tra xem N có phải là một số đối xứng hay không trong C như sau:

#include<stdio.h>
#include<math.h>

int main()
{
    //khai bao N
    int N;
    //Nhap N
    do
    {
        printf("\nNhap vao N ( N > 0 ): ");
        scanf("%d", &N);

        if (N <= 0)//Neu N<=0 yeu cau nhap lai
        {
            printf("\nGia tri ban nhap vao khong hop le. Xin vui long nhap lai! ");
        }

    } while (N <= 0);
    //khai bao SoChuSo
    int SoChuSo = (int)log10((float)N) + 1;
    //khai bao SoNghichDao
    int SoNghichDao = 0;
    //khai bao gan
    int gan = N;
    while (gan != 0)
    {
        int ChuSo = gan % 10; // lay chu so ra 
        gan /= 10; // bo chu so vua lay ra
        SoNghichDao += ChuSo * pow(10.0, --SoChuSo);//so nghich dao cua N
    }
    if(SoNghichDao == N)// neu SoNghichDao = N in ra dung
    {
        printf("N la so doi xung!");
    }
    else// nguoc lai in ra sai
    {
        printf("N khong phai la so doi xung!");
    }
}

Ví dụ tôi nhập N=11211

Kết quả:

Nhap vao N ( N > 0 ): 11211
N la so doi xung!

3. Tổng kết

Để thực hiện giải bài tập kiểm tra xem N có phải là một số đối xứng hay không trong C bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản và các cách sử dụng vòng lặp trong C và các phép toán học cơ bản