c語言圈子
發布時間: 2023-02-27 02:46:45
Ⅰ C語言編程:有n個人圍成一圈,按順序從1到n編號。從第一個人開始,報到3的人退出圈子。
這個問題叫約瑟夫環,就是一群人圍成一圈,從第一個人開始,報到3的出列,看最後留下誰。
這個可以用循環鏈表來實現,你也可以網路下,網路里有許多關於約瑟夫環的問題!
這個是我以前寫的代碼,你可以參考下,n取的10
#include
struct
serial
{
int
num;
struct
serial
*next;
};
void
main()
{
int
i;
struct
serial
peo[100],*p,*q;
for(i=0;i<10;i++)
peo[i].num=i+1;
for(i=0;i<9;i++)
peo[i].next=&peo[i+1];
peo[9].next=peo;
q=p=peo;
while(p!=p->next
)
{
for(i=0;i<2;i++)
{
q=p;
p=p->next;
}
q->next
=p->next
;
printf("被刪除的元素:%-4d\n",p->num);
p=q->next
;
}
printf("\n最後報號出來的是原來的:%d\n",p->num);
getchar();
}
熱點內容