首页 > 代码库 > P291.约瑟夫环 逢3退出
P291.约瑟夫环 逢3退出
#include <stdio.h>
#include<stdlib.h>
int main()
{
int n, i, k, m;
int array[50], *p;
printf("n = \n");
scanf("%d", &n);
p = array;
for (i = 0; i < n; i++)
*(p+i) = i+1;
i = 0; // i 为每次循环计数变量
k = 0; // k 为按1,2,3报数时的计数变量
m = 0; // m为退出人数计数变量
while(m < n-1) //当退出人数比n-1少时执行循环体
{
if( *(p+i) != 0 )
k++;
if(k == 3) // 对退出的人编号置为0
{
*(p+i) = 0;
k = 0;
m++;
}
i++;
if(i == n)
i = 0;
}
while(*p == 0)
p++;
printf("No. %d\n", *p);
return 0;
}
P291.约瑟夫环 逢3退出
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。