题目链接:http://poj.org/problem?id=3750

约瑟夫问题,直接模拟即可。

 #include <iostream>
#include <string>
using namespace std; const int maxn = ; int main()
{
char ch;
int i, n, w, s, num[maxn];
string per[maxn];
while (scanf("%d", &n) != EOF)
{
for (i = ; i < n; i++)
{
cin >> per[i]; // 保存人名
num[i] = i; // 保存人名所对应的编号
}
cin >> w >> ch >> s;
w = w - ; // 严谨写法应为:w = (w-1+n) % n,但题目说w < n,所以这样写也能通过,表示游戏刚开始时第一个报数人的编号,数组下标是从0开始的
do
{
// printf("n = %d\n", n);
w = (w + s - ) % n; // 得出从第w个开始的第s个位置,如果超出n,则mod n 来保证循环
cout << per[num[w]] << endl; // 该人出列
for (i = w; i < n-; i++)
per[i] = per[i+]; // 后面的人顶上出列的人的位置,即都往前挪
} while (--n); // 注意是--n,n--是错误的!!
}
return ;
}

最新文章

  1. XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法
  2. Hololens开发笔记之Gesture手势识别(Manipulation手势控制物体旋转)
  3. 3n+1b 备忘录方法
  4. 从github下载某个git库的4种方法
  5. poj2240 floyd
  6. easyui combotree 默认 初始化时就选中
  7. JAVA学习Swing章节JPanel和JScrollPane面板的简单学习
  8. centos下yum搭建安装linux+apache+mysql+php环境
  9. http://www.zhihu.com/question/24896283
  10. Android系统用于Activity的标准Intent
  11. xshell无法连接centos 6.6的问题
  12. 重叠I/O之使用完成例程的扩展I/O【系列二】
  13. Java 编程下使用 Class.forName() 加载类
  14. arm:启动代码判断是从nand启动还是从norflash启动,拷贝程序到内存的过程
  15. build path contains duplicate entry:&#39;src&#39; for project &#39;XXX&#39;
  16. SQL注入-攻入Apple ID钓鱼网站实录
  17. JavaScript 包装对象
  18. 【python】笔记
  19. php curl请求页面数据
  20. JavaScript和Ajax部分(3)

热门文章

  1. 【BZOJ-1030】文本生成器 AC自动机 + DP
  2. H2嵌入式数据库
  3. 网络html查看器
  4. Sql Server中启用分布式事务小结
  5. IPC 机制简介
  6. JNI的某些数组和字符串类型转换
  7. 微信成为首批支持iPhone 6s /Plus 上 3D Touch 功能的 App
  8. 网站程序版本号信息也可能造成bd快照严重滞后
  9. cocos基础教程(11)事件分发机制
  10. Java中的异常