标签:游戏 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