[ACM]【queue】AtCoder161 Lunlun Number

Lunlun Number

题意:找到第k个每两位之间是连续数字的数字在这里插入图片描述

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
	int k;
	scanf("%d",&k);
	queue<ll>q;
	for(int i=1;i<=9;i++)q.push(i);
	ll ans;
	for(int i=1;i<=k;i++){
		ans=q.front();
		q.pop();
		if(ans%10)q.push(10*ans+(ans%10)-1);
		q.push(10*ans+(ans%10));
		if(ans%10!=9)q.push(10*ans+(ans%10)+1);
	}
	printf("%lld\n",ans);
}

其实就是很简单的通过队列模拟每添加一位之后相邻的数字

发布了9 篇原创文章 · 获赞 0 · 访问量 99

猜你喜欢

转载自blog.csdn.net/weixin_45497996/article/details/105350219