小刚说C语言刷题—1149 - 回文数个数
1.题目描述
一个正整数,正读和反读都相同的数为回文数。
例如 22, 131, 2442 , 37073, 66,…… 所有 11位数都是回文数。
给出一个正整数 n ( 1≤n≤10000 ),求出 1,2,…,n 之中(包括 1 和 n )的回文数的个数。
输入
任意给定一个正整数 n ( 0<n≤10000 )
输出
一个正整数,表示[ 1,n ]之间的回文数的个数。
样例
输入
325
输出
41
2.参考代码(C语言版)
#include <stdio.h>
int main(void)
{
int n;
int i;
int num=0;//num表示回文数个数
scanf("%d", &n);
for(i=1;i<=n;i++)
{
int flag=i;
int r=0;
//从原数个位,十位等逆序组成新数,
//看新数是否等于旧数
while(flag!=0)
{
r=r*10+flag%10;
flag/=10;
}
if(r==i)
num++;
}
printf("%d\n",num);
return 0;
}
今天内容到此结束,下次再见!