#include<stdio.h>
int main()
{
int flag[1000]={0};
int num,persons,i=0,k=0;
printf("Please input:\n");
scanf("%d",&num);
persons=num;
while(persons != 1)
{
if(flag[i] != 1)
{
k++;
if(k == 3)
{
flag[i]=1;
persons--;
k=0;
}
}
i++;
if(i == num)
{
i =0;
}
}
for(i=0;i< num;i++)
{
if(0==flag[i])
{
printf("the last one is:%d\n",i+1);
}
}
return 0;
}
int main()
{
int flag[1000]={0};
int num,persons,i=0,k=0;
printf("Please input:\n");
scanf("%d",&num);
persons=num;
while(persons != 1)
{
if(flag[i] != 1)
{
k++;
if(k == 3)
{
flag[i]=1;
persons--;
k=0;
}
}
i++;
if(i == num)
{
i =0;
}
}
for(i=0;i< num;i++)
{
if(0==flag[i])
{
printf("the last one is:%d\n",i+1);
}
}
return 0;
}
本文介绍了一个简单的C语言程序,用于解决经典的约瑟夫环问题。该程序通过数组记录参与者状态,并通过循环遍历的方式模拟报数过程,最终找出最后一个剩下的参与者。
4203

被折叠的 条评论
为什么被折叠?



