UVA 12290 Counting Game

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3711


.打个表,然后模拟过程即可,如果超过了100000次就输出-1

有些玄学


#include<bits/stdc++.h>
using namespace std;
bool bs[700070];
int main(){
	for(int i=1;i<=700000;i++)
	{
		if(i%7==0)
		{
			bs[i]=1;
			continue;
		}	
		int s=i;
		int t;
		while(s)
		{
			t=s%10;
			s/=10;
			if(t==7)
			{
				bs[i]=1;
				break;
			}
		}
	}
	int n,m,k;
	
	while(~scanf("%d%d%d",&n,&m,&k))
	{
		if(n==0)break;
		int js=0;
		int time=1;
		int fx=0;
		int por=1;
		while(1)
		{
			if(time>=100000)
			{
				cout<<"-1"<<endl;
				break;
			}
			if(bs[time]==1&&por==m)
			js++;
			if(js==k)
			{
				cout<<time<<endl;
				break;
			}
			time++;
			if(fx==0)
			{
				por++;
				if(por==n)
				fx=1;
			}
			else{
				por--;
				if(por==1)
				fx=0;
			}
		}
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值