队列基础数据结构的小练习之士兵报数

队列基础数据结构的小练习之士兵报数,第1张

概述本文章向大家介绍队列基础数据结构的小练习之士兵报数,需要的朋友可以参考一下

队列基础数据结构的小练习~

现在输入一个正整数n,代表n名士兵编号1-n,开始报数,先1212报数报到2者出列;然后123123报数报到3者出列;然后又1212报数&mIDdot;&mIDdot;&mIDdot;直到只剩下小于等于3个人,输出这三个人的编号。

例:

输入:20

输出:1 7 19

代码:

1 #include

2 using namespace std;

3 int que[10001] = { 0 };

4 int main()

5 {

6 int n;

7 cin >> n;

8 int head = 1,tail = 1;

9 for (int i = 1; i <= n; i++) que[taiL++] = i;

10 while (1)

11 {

12 n = tail - head;

13 if (tail - head <= 3)break;

14 for (int i = 1; i <= n; i++)

15 {

16 if (i % 2 == 1)que[taiL++] = que[head];

17 head++;

18 }

19 n = tail - head;

20 if (tail - head <= 3)break;

21 for (int i = 1; i <= n; i++)

22 {

23 if (i % 3 != 0)que[taiL++] = que[head];

24 head++;

25 }

26 }

27 for (int i = head; i < tail; i++)

28 {

29 cout << que[i] << " ";

30 }

31 }

结果:

总结

以上是内存溢出为你收集整理的队列基础数据结构的小练习之士兵报数全部内容,希望文章能够帮你解决队列基础数据结构的小练习之士兵报数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1264799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存