1106 回文数

题目来源:
https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1106
Description
一个正整数,如果从左向 右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。输入两个整数m和n(m<n),输出区间[m,n]之间的回文数。
Input
输入两个正整数m和n,输入保证m<n。
Output
按从小到大的顺序,输出m到n之间的回文数,每个数后面有一个空格。
Sample Input
100 200
Sample Output
101 111 121 131 141 151 161 171 181 191
题意描述:
输入m和n
计算并输出区间m到n之间的回文数(输出格式)
解题思路:
for循环枚举m到n为i,调用函数判断是否为回文数,是则输出。
程序代码:

 1 #include<stdio.h>
 2 bool f(int n);
 3 int main()
 4 {
 5     int m,n,i;
 6     while(scanf("%d%d",&m,&n) != EOF)
 7     {
 8         for(i=m;i<=n;i++){
 9             if(f(i))
10             printf("%d ",i);
11          } 
12         printf("
");
13     }
14     return 0;
15 }
16 bool f(int n)
17 {
18     int str[50],i=0,j;
19     while(n)
20     {
21         str[i++]=n%10;
22         n /= 10;    
23     }
24     for(j=0;j<i/2;j++){
25         if(str[j] != str[i-j-1])
26         return false;
27     }
28     return true;
29 }


错误分析:
注意对应数组下标比较

原文地址:https://www.cnblogs.com/wenzhixin/p/6925264.html