天天看點

報時助手

題目 1047: [程式設計入門]報數問題

時間限制: 1Sec 記憶體限制: 128MB 送出: 5915 解決: 3382

題目描述

有n人圍成一圈,順序排号。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來的第幾号的那位。

輸入

初始人數n

輸出

最後一人的初始編号

樣例輸入

3

樣例輸出

2

#include<stdio.h>
int main()
{
	int n,a[100],ko=0,cns=0;
	int i,j;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		a[i]=i+1;
	}
	i=0;
	while(ko!=(n-1))
	{
		if(a[i])
			cns++;	
		if(cns==3)
			{
				a[i]=0;
				cns=0;
				ko++;
			}
		i++;
		if(i==n)
		i=0;
	}
	for(i=0;i<n;i++)
	{
	   if(a[i])
	   	printf("%d",i+1);
		   
	}
	
	return 0;
}
           

繼續閱讀