队列之士兵报数
2018-10-29 15:26:34来源:博客园 阅读 ()
队列基础数据结构的小练习~
现在输入一个正整数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 }
结果:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:LG-P1311选择客栈
下一篇:级数求和(C++)
- 单调队列模板【附例题】 2020-05-05
- STL之queue 2020-04-08
- DSA_06:队列 2020-03-29
- 单调队列 2020-02-07
- 二叉树(四)二叉堆 2020-02-03
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash