L1-033 出生年
作者:
lvjj
,
2024-03-29 19:44:21
,
所有人可见
,
阅读 5
//坑点:y=3000,n=4是要找到3000以后的第一个四位不重复数字
#include <bits/stdc++.h>
using namespace std;
int main(){
//利用set不会重复的性质:当n为4,那么set的存储大小也是4
int n,m;
cin>>m>>n;
//从你输入的m开始遍历,遍历不断把元素插到set里面,如果set.size()==n,就记录循环了几次,然后把当前遍历到的年份按照规定格式输出。
for(int i = m;i<=3012;i++){
set<int> se;
int num = i;//由于下面j循环的x/=10的操作会改变x数的大小,用i/=10会改变i,所以这里用一个变量num对i拷贝,每次i++进入新的循环会刷新num的值
for(int j = 0;j<4;j++){
se.insert(num%10);//获取最低位十进制数
num/=10;//去掉最低位,循环后保证每一位都被访问到
//上面这几行就是获取到一段十进制数各个位的模板代码
}
if(se.size()==n){
printf("%d %04d\n",i-m,i);
break;
}
}
return 0;
}