Bootstrap

【2015江苏省青少年信息学奥林匹克竞赛复赛】 回文数个数

描述

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

输入描述

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

输出描述

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

用例输入 1 

325

用例输出 1 

41

代码

#include<bits/stdc++.h>
using namespace std;
bool isHws(int h) {
    int t = h, r = 0;
    while (t) {
        r = r * 10 + t % 10;
        t /= 10;
    }
    if (h == r) return true;
    return false;
}
int main() {
    int n, c = 0;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        if (isHws(i)) c++; //啊啊啊啊啊啊啊啊啊
    }
    cout << c;
    return 0;
}

;