Lập trình C - Tìm số thuận nghịch
Tìm số thuận nghịch trong C
Đề bài
Viết chương trình C tìm các số thuận nghịch có 6 chữ số.
Một số được gọi là số thuận nghịch nếu ta đọc từ trái sang phải hay từ phải sang trái số đó ta vẫn nhận được một số giống nhau. Ví dụ 123321 là một số thuận nghịch. Hãy liệt kê tất cả các số thuận nghịch có 6 chữa số.
123321 --> True
123451 --> False
Lời giải
Cách 1: Duyệt các số từ 100000 đến 999999, rồi phân tách số hiện tại thành các chữ số đơn lẻ để kiểm tra tính thuận nghịch.
/**
* Chuong trình liet ke tat ca cac so thuan nghich co 6 chu so
*
*/
#include<stdio.h>
const int DEC_10 = 10;
/**
* main
*
* @param args
*/
int main() {
int count = 0, i;
// in ra man hinh cac so thuan nghich co 6 chu so
for (i = 100000; i < 1000000; i++) {
if (isThuanNghich(i)) {
printf("%d\n", i);
count++;
}
}
printf("Tong cac so thuan nghich co 6 chu so la: %d", count);
}
/**
* kiem tra so thuan nghich
*
* @param n: so nguyen duong
* @return 1: la so thuan nghich
* 0: khong la so thuan nghich
*/
int isThuanNghich(int n) {
int a[20];
int dem = 0, i;
// phan tich n thanh mang cac chu so
do {
a[dem++] = (n % DEC_10);
n = n / DEC_10;
} while (n > 0);
// kiem tra tinh thuan nghich
for (i = 0; i < (dem/2); i++) {
if (a[i] != a[(dem - i - 1)]) {
return 0;
}
}
return 1;
}
Kết quả:
100001
101101
102201
...
997799
998899
999999
Tong cac so thuan nghich co 6 chu so la: 900