洛谷 B4411:[GESP202509 二级] 优美的数字 ← 嵌套循环

【题目来源】
https://www.luogu.com.cn/problem/B4411

【题目描述】
如果一个正整数在十进制下的所有数位都相同,小 A 就会觉得这个正整数很优美。例如,正整数 6 的数位都是 6,所以 6 是优美的。正整数 99 的数位都是 9,所以 99 是优美的。正整数 123 的数位不都相同,所以 123 并不优美。
小 A 想知道不超过 n 的正整数中有多少优美的数字。你能帮他数一数吗?

【输入格式】
一行,一个正整数 n。​​​​​​​

【输出格式】
一行,一个正整数,表示不超过 n 的优美正整数的数量。

【输入样例】
2025

【输出样例】
28

【数据范围】
对于所有测试点,保证 1≤n≤2025。

【算法分析】
求解本题的一个重要技巧,在于标记变量的使用。

【算法代码】

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

int n,cnt;

int main() {
    cin>>n;
    for(int i=1; i<=n; i++) {
        int t=i, base=t%10;
        bool flag=true;
        while(t) {
            if(t%10!=base) {
                flag=false;
                break;
            }
            t/=10;
        }
        if(flag) cnt++;
    }

    cout<<cnt<<endl;

    return 0;
}

/*
in:
2025

out:
28
*/





【参考文献】
https://www.luogu.com.cn/problem/solution/B4411




 

posted @ 2025-11-20 21:24  Triwa  阅读(332)  评论(0)    收藏  举报