约瑟夫环:
void my_ysefh(Looplink L)
{
printf("请输入想输入数字个数:");
int a,b,c,d,i,j=0;
scanf("%d",&a);
d=a;
printf("请输入间隔数:");
scanf("%d",&b);
printf("请输入这几个数:");
for(i=0;i<a;i++)
{
scanf("%d",&c);
list_inseat_tail(L,c);
}
list_show(L);
Looplink p=L;
datatype s[a];
while(d!=0)
{
for(i=0;i<b;i++)
{
p=p->next;
if(p==L||p->data==0)
{
while(p==L||p->data==0)
{
p=p->next;
}
}
}
s[j]=p->data;
j++;
d-=1;
p->data=0;
}
printf("约瑟夫环后为:");
for(i=0;i<a;i++)
{
printf("%d\t",s[i]);
}
putchar(10);
}
用栈转换二进制
思维导图: