题目来源:
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 }
错误分析:
注意对应数组下标比较
时间: 2024-10-26 02:52:19