然后123123报数报到3者出列
作者: 时时彩平台-编程 发布:2019-09-23
队列基础数据结构的小练习~
现在输入一个正整数n,代表n名士兵编号1-n,开始报数,先1212报数报到2者出列;然后123123报数报到3者出列;然后又1212报数···直到只剩下小于等于3个人,输出这三个人的编号。
例:
输入:20
输出:1 7 19
代码:
1 #include <iostream> 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 }
结果:
本文由时时彩平台发布于时时彩平台-编程,转载请注明出处:然后123123报数报到3者出列
关键词:
上一篇:我们也可以对BCMath库单独进行安装
下一篇:没有了
下一篇:没有了