和发生背景 汽⻋的⾥程表显示6位整数的公⾥数。例如,⼩明的⻋有300000公⾥⾥程,则会看到
3-0-0-0-0-0。某天,⼩明发现⾥程数的最后4位数是回⽂。例如,5-4-4-5是⼀个
回⽂,所以⾥程表可能显示为3-1-5-4-4-5。1公⾥之后,后5位数组成⼀个回⽂。
例如,它可以是3-6-5-4-5-6。再过1公⾥,6位数的中间4位是⼀个回⽂。⼜过了1
公路,所有的6位数都成了回⽂。请问,第⼀次看⾥程表时,它的示数是多少?
• 编写程序,检查全部的6位数,逐⾏打印出可以满⾜上述要求的数字
codebook20.03
可以30000内的回文数,但是不知道怎么联系起来
希望可以逐⾏打印出可以满⾜上述要求的数字
供参考:
#include <stdio.h>
#include <stdlib.h>
int fun(int n)
{
int k = n, m = 0;
if (n <= 1000) return 0;
while (k) {
m = m * 10 + k % 10;
k /= 10;
}
return m == n;
}
int main()
{
int n, k, m, count = 0;
int i = 0;
int arr[30000] = { 0 }; //char arr[30000] = { 0 };
scanf("%d", &k);
for (n = k, k = (k / 100000 + 1) * 100000; n < k; n++)
{
if (fun(n % 10000) || fun(n % 100000) || fun((n / 10) % 10000) || fun(n))
arr[i++] = n;
}
printf("i=%d\n", i);
while (i--) {
printf("%d\n", arr[i]);
}
return 0;
}