本文主要是介绍约瑟夫:41一个人,依次报到,报到三自杀,依次输出自杀人的编号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include<stdio.h>
#include<stdlib.h>struct Peo
{int bian; //记录每个人的编号int data; //记录是否需要继续报到,也就是有没有咪西掉
};int main()
{struct Peo p[41];int i;for(i=0;i<41;i++) //首先初始化编号跟数据表示都活着{p[i].bian =i+1;p[i].data =1;}int j=0;int sum=41; //计数,用来判定什么时候退出for(i=0;i<41;i++) //一直循环直到都咪西掉{if(p[i].data ==1) //在数据为1,表示活着的人才有资格报到自杀{j++; //报数if(j==3) //报到3{p[i].data =0; //表示咪西掉了printf("%d\n",p[i].bian ); //输出编号j=0; //j为零进行下一组报数sum--; //活着的人数减一}}if(i==40) //当到达链表尾部的时候{if(sum==0) //如果都死了,退出循环break;else //如果还有人没死,令i=-1,返回链表头部,-1是因为循环回去会加一,也就是i=0i=-1;}}return 0;
}
这篇关于约瑟夫:41一个人,依次报到,报到三自杀,依次输出自杀人的编号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!