本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大家订阅我的专栏:算法题解:C++与Python实现!
附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总
【题目来源】
洛谷:B4497 [GESP202603 二级] 数数 - 洛谷
【题目描述】
对于正整数n nn,如果n nn的所有数位中包含恰好3 33个2 22,Alice 会认为这个正整数是美丽的。例如,正整数24122 2412224122中包含3 33个2 22,所以24122 2412224122是美丽的;正整数132 132132中包含1 11个2 22,所以132 132132不是美丽的;正整数212322 212322212322中包含4 44个2 22,所以212322 212322212322不是美丽的。
Alice 想知道正整数L LL到正整数R RR(包括L LL和R RR)中有多少美丽的正整数,你能帮她数一数吗?
【输入】
输入共2 22行,第一行为正整数L LL,第二行为正整数R RR。
【输出】
输出一行,包含一个整数C CC,表示L LL到R RR中C CC美丽数的数量。
【输入样例】
2221 2223【输出样例】
2【算法标签】
#入门 #语法基础
【代码详解】
#include<bits/stdc++.h>// 包含所有标准库头文件usingnamespacestd;// 使用标准命名空间intl,r,ans;// 定义三个整型变量:l(左边界), r(右边界), ans(结果计数器)// 判断一个整数是否恰好包含3个数字2boolcheck(intx){intres=0;// 计数器,记录数字2出现的次数// 逐位检查数字x的每一位while(x){// 检查当前个位数是否为2if(x%10==2){res++;// 如果是2,计数器加1}x/=10;// 去掉当前个位数,继续检查下一位}// 返回判断结果:数字2是否恰好出现3次returnres==3;}intmain()// 主函数入口{cin>>l>>r;// 输入区间范围[l, r]// 遍历区间[l, r]中的每一个整数for(inti=l;i<=r;i++){// 检查当前数字i是否满足条件if(check(i)){ans++;// 如果满足条件,计数器加1}}cout<<ans<<endl;// 输出满足条件的数字个数return0;// 程序正常结束}【运行结果】
2221 2223 2