然后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 }

结果:

图片 1

本文由时时彩平台发布于时时彩平台-编程,转载请注明出处:然后123123报数报到3者出列

关键词:

上一篇:我们也可以对BCMath库单独进行安装
下一篇:没有了