博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
士兵队列训练问题
阅读量:4679 次
发布时间:2019-06-09

本文共 1274 字,大约阅读时间需要 4 分钟。

Description

某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。
 
 

Input

本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。
 
 

Output

共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。
 
 

Sample Input

2 20 40
 

Sample Output

1 7 19 1 19 37
 
       题很简单,就、自己看代码。
 
 
 
#include
#include
#include
using namespace std;int main(){ int t,n,i,p,sum,s[5005],cut; while (~scanf("%d",&t)) { while (t--) { p=2; scanf("%d",&n); memset(s,0,sizeof(s)); sum=0; while (n-sum>3) { cut=0; for (i=1;i<=n;i++) { if(s[i]) continue; cut++; if (cut==p) {sum++;s[i]=1;cut=0;} } if (p==3) p--; else p++; } cut=0; for (i=1;i<=n;i++) if (!s[i]) { cut++; if (cut!=n-sum) printf("%d ",i); else printf("%d\n",i);} } }}

 

转载于:https://www.cnblogs.com/pblr/p/4698848.html

你可能感兴趣的文章
二 面向对象
查看>>
Swift,下标简化方法的调用
查看>>
pal2nal
查看>>
HihoCoder - 1236 Scores (五维偏序,分块+bitset)
查看>>
Jquery 事件 DOM操作
查看>>
运算符
查看>>
FIR滤波器的verilog实现方法
查看>>
display的值和对应的意义
查看>>
HashSet、LinkHashSet、TreeSet总结
查看>>
手机号码输入格式化,数字三三四的输入;手机正则校验输入是否合理及提示;...
查看>>
抽象类
查看>>
CSS3 背景
查看>>
WPF DataGrid 之数据绑定
查看>>
c语言之gdb调试。
查看>>
位反转的最佳算法
查看>>
常用面试问题
查看>>
第一个爬虫
查看>>
Java面试知识点之Java基础
查看>>
老外的前端面试题
查看>>
架构:新浪架构师谈微博架构
查看>>