C语言版:
#include<stdio.h>
#include<stdlib.h>
int main (int argc, char **argv)
{
int n,i,j,k,c;
int *p;
k=0;
printf("please enter the number of the people:");
scanf("%d",&n);
p = (int *)malloc(n*sizeof(int));
for(i=1;i<=n;i++)
*(p+i)=i;
i = 1;
for(j=0;j<n-1;)
{
if(*(p+i)!=0)
k++;
if(k==3)
{
*(p+i)=0;
j++;
k=0;
}
i++;
if(i==(n+1))
i=1;
}
p++;
while(*p == 0)
{
p++;
}
printf("%d\n",*p);
system("pause");
return 0;
}
Java版:
public int numberToExit(int total, int interval) {
boolean[] arr = new boolean[total];
for(int i = 0; i &l

本文介绍了经典的约瑟夫环问题,即N个人围成一圈,从某个人开始编号,按顺序数到3的人出列,然后从下一个人继续数,直到剩下最后一个人。给出了C语言实现的解决方案,探讨了算法思想。
最低0.47元/天 解锁文章
1166

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



