當前位置:首頁 » 編程語言 » c語言約瑟夫問題

c語言約瑟夫問題

發布時間: 2025-09-20 05:01:52

『壹』 約瑟夫問題c語言實現代碼

測試結果:

總人數n=9,報數m=2.
2->4->6->8->1->5->9->7->3


#include<stdio.h>
#include<stdlib.h>

typedefstructnode
{
intdata;
structnode*next;
}node;

typedefnode*Linklist;

//原代碼voidCreatLinklist(Linklist*L,intn)
LinklistCreatLinklist(Linklist*L,intn)
{
Linklistp,s;
*L=(Linklist)malloc(sizeof(node));
(*L)->next=NULL;
inti=1;
p=*L;//增加這個語句,讓p指向當前結點
if(n!=0)
{
//原代碼while(i<=41)
while(i<=n)
{
s=(Linklist)malloc(sizeof(node));
s->data=i++;
p->next=s;
p=s;
}
s->next=(*L)->next;//將笑賣鏈表循環起來;
}
free(*L);//釋放頭結點;
returns->next;//返回第一個結點的值;
}

intmain()
{
intn=41;//9
intm=3;//2
inti;
LinklistL;

printf("總人數n=%d,報數m=%d. ",n,m);

//原代碼Linklist*p=CreatLinklist(Linklist*L,intn);
Linklistp=CreatLinklist(&L,n);
Linklisttemp;

早升笑m%=n;
while(p!=p->next)
{
for(i=1;i<m-1;i++)
{
陸含p=p->next;
}
printf("%d->",p->next->data);
temp=p->next;
p->next=temp->next;
free(temp);
p=p->next;
}
printf("%d",p->data);
return0;
}

『貳』 C語言,編了一個程序解決約瑟夫環問題(數組模擬1代表有人,0代表走了)下面的代碼對嗎

#include<stdio.h>
#defineN10
intmain()
{
inta[N];
inti,people=N,n=0;
for(i=0;i<N;i++)
a[i]=1;
i=0;
while(people>0)
{
if(a[i]==1)//非0的才統計
n++;
if(n==3)
{
a[i]=0;
people--;
printf("第%d個人離開 ",i+1);
n=0;
}
i++;
if(i==N)
i=0;
}
return0;
}

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:582
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:876
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:571
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:757
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:673
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1000
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:243
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:103
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:795
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:701