1106 回文数
Posted Reqaw’s Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("\n");
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 }
错误分析:
注意对应数组下标比较
以上是关于1106 回文数的主要内容,如果未能解决你的问题,请参考以下文章