题意:

n个人围成个圆,从1到n,一个人从1数到k就让第k个人离场,了另一个人从n开始数,数到m就让第m个人下去,直到剩下最后一个人,并依次输出离场人的序号。

水题,直接上标程了

#include<stdio.h>
#define maxn 25
int n, k, m, a[maxn]; // 逆时针走t步,步长是d(-1表示顺时针走),返回新位置
int go(int p, int d, int t) {
while(t--) {
do { p = (p+d+n-1) % n + 1; } while(a[p] == 0); // 走到下一个非0数字
}
return p;
} int main() {
while(scanf("%d%d%d", &n, &k, &m) == 3 && n) {
for(int i = 1; i <= n; i++) a[i] = i;
int left = n; // 还剩下的人数
int p1 = n, p2 = 1;
while(left) {
p1 = go(p1, 1, k);
p2 = go(p2, -1, m);
printf("%3d", p1); left--;
if(p2 != p1) { printf("%3d", p2); left--; }
a[p1] = a[p2] = 0;
if(left) printf(",");
}
printf("\n");
}
return 0;
}

最新文章

  1. 平衡二叉树AVL删除
  2. ORA-01012: not logged on
  3. Android工作学习第5天之Activity的传值问题
  4. Json 字符串 转换为 DataTable数据集合
  5. 初步理解Java的三大特性——封装、继承和多态
  6. 反射-Reflect
  7. 关于const
  8. Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件
  9. shell脚本例子
  10. The Euler function(欧拉函数)
  11. Linux入门之常用命令(1)
  12. GCD hdu2588
  13. Java中方法的重载和重置(覆盖)的区别
  14. Sql Server服务远程过程调用失败
  15. LeetCode - Trim a Binary Search Tree
  16. tomcat 配置文件server.xml 详解 Connector Engine Host Context
  17. Detect Changes in Network Connectivity
  18. MarkdownPad2 在 Windows10 下 预览无法显示
  19. (转)如何解决VC中的警告warning C4251 needs to have dll-interface
  20. oracle 优化方案小记

热门文章

  1. [RxJS] exhaustMap vs switchMap vs concatMap
  2. 全栈JavaScript之路(十)学习 DocumentFragment 类型 节点
  3. Jmeter压测问题_Non HTTP response code: java.net.ConnectException
  4. 开发DataSnapserver
  5. 将tflearn的模型保存为pb,给TensorFlow使用
  6. Socket之shutdown()用法
  7. java 语法 —— final
  8. P2532 [AHOI2012]树屋阶梯 卡特兰数
  9. 95.Extjs 表单中自定义的验证规则 VTypes
  10. 机器学习——Day 1 数据预处理