汽⻋的⾥程表显示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
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,k,m,count=0;
int i = 0;
char arr[30000] = {0};
for(n = 1; n < 300000; n++)
{
m = n;
k = 0;
while(m > 0)
{
k = 10*k + m%10;
m = m/10;
}
if(n == k){
arr[i] = n;
i++;
}
}
printf("%d\n",n);
return 0;
}
供参考:
#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;
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;
}