Đề 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ố.
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 li?t kê t?t c? các s? thu?n ngh?ch có 6 ch?a s?. * * @author viettuts.vn */ #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