Kiểm tra số đối xứng trong C | Laptrinhcanban.com

HOME › >>

Kiểm tra số đối xứng trong C

Hướng dẫn cách kiểm tra số đối xứng trong C. Bạn sẽ học được cách tạo hàm kiểm tra số đối xứng trong C sau bài học này.

Số đối xứng trong C

Chúng ta đều biết trong toán học số nguyên n gọi là số đối xứng nếu đọc từ trái qua phải, hay từ phải qua trái đều được số giống nhau. Ví dụ: 11,121,101 là các số đối xứng.

Khái niệm số đối xứng trong C cũng giống như trên. Chúng ta coi một số là số đối xứng trong C nếu như đọc từ trái qua phải, hay từ phải qua trái số đó đều được số giống nhau.

Số đối xứng trong C

Đây là chìa khóa thứ giúp chúng ta có thể tìm được số đối xứng trong C.

Kiểm tra số đối xứng trong C

Một số được coi là số đối xứng trong C 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 là xong.

Trong C không có hàm cài sẵn nào để đảo ngược một số chỉ định cả, bởi vậy chúng ta cần dùng tới hàm tự tạo reverse() mà Kiyoshi đã giới thiệu trong bài sau:

Và chúng ta tạo hàm kiểm tra số đối xứng trong C như sau:

/*Hàm tìm số đảo ngược trong C*/
int reverse_num(int n){
int reverse = 0;
while (n > 0) {
reverse = reverse * 10 + n % 10;
n /= 10;
}
return reverse;
}

/*Ứng dụng Hàm tìm số đảo ngược để tạo Hàm kiểm tra số đối xứng trong C*/
int symmetrical_num(int n){
// flag = 1 => số đối xứng
// flag = 0 => không phải số đối xứng

int flag =0;
if (reverse_num(n) == n) flag = 1;
return flag;
}

Chúng ta có thể gọi hàm này và sử dụng trong chương trình nhập n kiểm tra n có phải số đối xứng không trong C như sau:

#include <stdio.h>

/*Hàm tìm số đảo ngược trong C*/
int reverse_num(int n){
int reverse = 0;
while (n > 0) {
reverse = reverse * 10 + n % 10;
n /= 10;
}
return reverse;
}

/*Hàm kiểm tra số đối xứng trong C*/
int symmetrical_num(int n){
// flag = 1 => số đối xứng
// flag = 0 => không phải số đối xứng

int flag =0;
if (reverse_num(n) == n) flag = 1;
return flag;
}

int main(void){
int n;

printf(">> Nhap so tu nhien= ");
scanf("%d",&n);

int check = symmetrical_num(n);

if( check == 1 ) printf("%d la so doi xung\n", n);
else printf("%d khong phai la so doi xung\n", n);
return 0;
}

Màn hình nhập liệu và kết quả kiểm tra số đối xứng trong C sẽ như sau:

>> Nhap so tu nhien= 1234
1234 khong phai la so doi xung

>> Nhap so tu nhien= 12321
12321 la so doi xung

>> Nhap so tu nhien= 12344321
12344321 la so doi xung

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách tìm số đối xứng trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/so-trong-c/kiem-tra-so-doi-xung-trong-c/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.