`
wss71104307
  • 浏览: 219458 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

1023 士兵队列训练问题

J# 
阅读更多
#include <stdio.h>
#include <stdlib.h>

void soldier(int s[], int n)
{
	int i, j;
	int m;
	m = n;
    int k = 2;

	while(m > 3)
	{
		j = 1;
		for(i = 0; i < n; i++)
		{
			if(s[i] == 0)
			{
				if( j % k == 0) 
				{
					s[i] = 1;
					m--;
				}
				j++;
			}
		}

		k = (k > 2 ? 2 : 3);
	}
}

int main()
{
	int n;
	int num;
	int i ,j;
	while(scanf("%d", &n) == 1)
	{
		for(i = 0; i < n ; i++)
		{
			scanf("%d", &num);
			int * s = (int *)calloc(num, sizeof(int));
			soldier(s, num);
			for(j = 0; j < num; j++)
			{

				if(s[j] == 0)
				{
					if(j == 0) printf("%d", j+1);
					else printf(" %d", j+1);
				}
			}
			printf("\n");
		}
	}
	return 0;
}

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics