约瑟夫问题数组实现
#include<stdio.h>#include<string.h>
#define COUNT 9
char a;
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int n,i;
int killed=0;
int count=0;
scanf("%d",&n);
memset(a,'@',sizeof(a));
for(i=0;killed<n;i++)
{
if(i==2*n)
{
i=0;
}
if(a!='+')
{
count++;
}
if(count==COUNT)
{
count=0;
a='+';
killed++;
}
}
for(i=0;i<n*2;i++)
{
printf("%c",a);
}
return 0;
}
不知道有错没有,测试的数据通过了,感觉逻辑是对的,如果没错的话,这个看上去比循环链表简单一点
页:
[1]