B4411 [GESP202509 二级] 优美的数字

题目描述

如果一个正整数在十进制下的所有数位都相同,小 A 就会觉得这个正整数很优美。例如,正整数 666 的数位都是 666,所以 666 是优美的。正整数 999999 的数位都是 999,所以 999999 是优美的。正整数 123123123 的数位不都相同,所以 123123123 并不优美。

小 A 想知道不超过 nnn 的正整数中有多少优美的数字。你能帮他数一数吗?

输入格式

一行,一个正整数 nnn

输出格式

一行,一个正整数,表示不超过 nnn 的优美正整数的数量。

输入输出样例 #1

输入 #1

6

输出 #1

6

输入输出样例 #2

输入 #2

2025

输出 #2

28

说明/提示

对于所有测试点,保证 1≤n≤20251 \leq n \leq 20251n2025

#include<bits/stdc++.h>

using namespace std;
typedef long long ll;	// 严格要求

int main(){
	ios :: sync_with_stdio(0);	// 提高cin、cout的运行速度
	ll n, sum = 0;
	cin >> n;
	
	for(ll i = 1; i <= n; i++){
		//判断当前数是不是美丽数字
		bool flag = true; 	//开始默认是美丽数字
		
		ll x = i, d = i % 10;	//x是用来拆位 d是用来判断x当中是否都等于d
		
		while(x){
			if(x % 10 != d){	//存在与d不相同不是美丽数 
				flag = false;
				break;
			}
			x /= 10; 
		} 
		
		//最后
		if(flag){
			sum++;
		} 
	}
	
	cout << sum << endl;

    return 0;
}

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐