编程论坛
注册
登录
编程论坛
→
C++教室
士兵队列训练问题
return_0
发布于 2020-01-28 17:56, 1761 次点击
某部队进行新兵队列训练,将新兵从 11 开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数…以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。
你有答案了吗?
[此贴子已经被作者于2020-1-29 12:33编辑过]
2 回复
#2
return_0
2020-01-29 12:31
[color=#FFFFFF]
大家有答案了吗?
这道题困扰我好久了。。。
[/color]
#3
纯蓝之刃
2020-01-29 15:03
程序代码:
#include
<iostream>
using
namespace
std;
int
main()
{
int
n,i,j=
0
,temp=
3
;
cout
<<
"
Input:
"
<<endl;
cin
>>n;
int
array[n+
1
]={
0
};
for
(i=
1
;i<=n;i++)
array[i]=i;
do
{
j=
1
;
if
(temp%
3
==
0
)
temp--;
else
temp++;
for
(i=
1
;i<=n;i++)
{
if
(i%temp!=
0
)
array[j++]=array[i];
}
n=j-
1
;
}
while
(j>
4
);
cout
<<
"
Output:
"
<<endl;
for
(i=
1
;i<j;i++)
cout
<<array[i]<<
"
"
;
cout
<<endl;
return
0
;
}
1