标签:游戏 int 约瑟夫问题 计数器 导入 printf 死亡人数 define 规则
5 3
4
第一轮:3被杀
第二轮:1被杀
第三轮:5被杀
第四轮:2被杀
#include<stdio.h> #define N 50 int main() { int i, j, k, n, m, a[N]; //k为计数器, j为数数器, i为数组下标 scanf("%d%d", &n, &m); for(i = 0; i < n; ++i) a[i] = i + 1; for(k = 0, j = 1, i = 0; i < n; i = (i + 1) % n) //取余是为了模拟环 { if(a[i] != 0) //还活着 { if(j == m) //数到m { a[i] = 0; j = 0; //从新开始数数 k++; //死亡人数+1 if(k == n) //输出最后一个人 printf("%d\n", i + 1); } j++; //计数 if(k == n) break; //没有活人,跳出循环 } } return 0; }
标签:游戏 int 约瑟夫问题 计数器 导入 printf 死亡人数 define 规则
原文地址:https://www.cnblogs.com/mjn1/p/9898003.html