C語言版約瑟夫問題演算法實現

2022-09-21 13:57:11 字數 772 閱讀 2894

有n個人圍坐一圈程式設計客棧,現從第s個人開始報數,數到m的人出列,接著從出列的下乙個人開始重新報數,數到m的人又出列.如此下去,直到所有人都出列為止.試設計確定他們出列次序序列的程式

1、確定儲存結構:n個人圍成一圈,故使用迴圈單鏈表來儲存序號

2、演算法實現:

該問題共n、m、s三個未知量,所以可以通過三個迴圈來實現,第乙個迴圈用來確定最開始第乙個報數的人的指標位置(單鏈表的頭節點指標指向第s個人),第二個迴圈用來控制輸出序號的次數(共n次),第三個迴圈用來數數(每一次迴圈使指標移動m次)

# include

# include

tywww.cppcns.compedef struct node

node, *pnode;

pnode creat_list(int n);

int main (void)

//第乙個迴圈確定第乙個報數的人在迴圈單鏈表中的位置

for(i = 1; i <= n; i++) //外部迴圈代表遍歷到最後乙個所需要的迴圈次數

else

}printf("%d ",p -> number);

p -> number = 0;

dowhile(p -> number == 0);

} printf("\n");

return 0;

}pnode creat_list(int n) //單鏈表的建立

return phead;

}

Sunday演算法c語言版實現

一 bf演算法 bf演算法是普通的模式匹配演算法,其基本思想就是將目標串的第乙個字元與模式串的第乙個字元進行匹配。若相等,則繼續比較第二個字元 若不相等,則比較目標串的第二個字元和模式串的第乙個字元。依次比較下去,直到得出最後的匹配結果。示例 static int bf const char src...

C語言版 農曆演算法

這個只是基本的農曆演算法,另外的節日查詢啊,可以自己做的。到 找乙個萬年曆,改寫成c語言的就可以了。char getdayof systemtime pst const char cdizhi const char cshuxiang const char cdayname const char c...

C語言版 農曆演算法

這個只是基本的農曆演算法,另外的節日查詢啊,可以自己做的。到 找乙個萬年曆,改寫成c語言的就可以了。char getdayof systemtime pst const char cdizhi const char cshuxiang const char cdayname const char c...