#include<stdio.h>
#include<string.h>
int main()
{
int n,a,i,j,str1[5050],str2[5050],b;
scanf("%d",&n);
while(n--){
b=0;
memset(str1,0,sizeof(str1));
memset(str2,0,sizeof(str2));
scanf("%d",&a);
for(i=1;i<=a;i++)
{
str1[i]=i;
}
while(a>=4){
for(i=0,j=0;i<a;i++){
if((i+1)%2!=0){
str2[j+1]=str1[i+1];
j++;
}
}
b=j;
memset(str1,0,sizeof(str1));
if(b<=3){
break;}
for(i=0,j=0;j<b;j++)
{
if((j+1)%3!=0){
str1[i+1]=str2[j+1];
i++;
}
}
a=i;
C语言 杭电ACM 1276 士兵队列训练问题
最新推荐文章于 2022-12-06 22:07:35 发布
这是一个C语言程序,用于解决杭电ACM竞赛中的士兵队列训练问题。程序读取士兵数量,然后通过不断重组队列,直至队列长度小于等于4。最后输出重组后的队列序列。
摘要由CSDN通过智能技术生成