⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1628 roman roulette.cpp

📁 威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。
💻 CPP
字号:
#include <cstdio>
using namespace std;
int cir[101];

int main()
{
	int i,j,n,k,now,die;
	
	while( scanf("%d %d",&n ,&k)==2 && (n != 0 || k != 0))
	{
		for(i=1;i<=n;i++)
			cir[i]=i;
		now=0;
		for(i=0;i<n-1;i++)
		{
			j=k;
			while(j>0)
			{
				now++;
				if(now>n)
					now=1;
				if(cir[now]!=-1)
					j--;
			}//while
			die=now;
			cir[die]=-1;
			
			j=k;
			while(j>0 && i<n-2)
			{
				now++;
				if(now>n)
					now=1;
				if(cir[now]!=-1)
					j--;
			}//while
			cir[die]=cir[now];
			cir[now]= -1;
			now=die; 
			if(now>n)
				now=1;
		}//for
		
		int result;
		for(i=1;i<=n;i++)
			if(cir[i]!= -1)
			{
				result=cir[i];
				break;
			}
		for (i=1;  i<=n; i++)
		{	
			int tmp=(result-1+i)%n;
			if (tmp==0) tmp=n;
			if (tmp==1)
			{
				printf("%d\n",i);
				break;
			}
		}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -