mmxingye

导航

07 | 函数应用-回文数个数问题求解

题目描述

一个正整数,正读和反读都相同的数为回文数。例如22,131,2442,37073,6,…所有1位数都是回文数。给出一个正整数n(1≤n≤10000),求出1,2,…,n之中(包括1和n)的回文数的个数。

输入

任意给定一个正整数n(0 < n <= 10000 )

输出

一个正整数,表示[1,n]之间的回文数的个数。

样例

输入

325

输出

41
#include <bits/stdc++.h>
using namespace std;

bool huiwen(int n){
	bool r;
	int t=n;  //一定要提前保存 n 的副本
	int x=0; // 存储N 倒过来的数
	//用短除法求出 n 倒过来的数
	while(n!=0){
		x=x*10+n%10;
		n=n/10;
	}
	//判断是否是回文
	if(t==x){
		r=true;
	}
	else{
		r=false;
	}
	return r;
}
int main(){
	int i,n,c=0;
	bool f;
	cin>>n;
	for(i=1;i<=n;i++){
		f=huiwen(i);
		if(f==true){
			c++;
		}
	}
	cout<<c<<endl;
	getchar();
	getchar();
}

posted on 2022-06-09 19:00  独立树  阅读(355)  评论(0编辑  收藏  举报