第二次練習 雙向迴圈鍊錶

2021-08-09 23:41:29 字數 1354 閱讀 5904

成績

10開啟時間

2023年09月27日 星期三 18:00

折扣0.8

折扣時間

2023年10月17日 星期二 23:55

允許遲交

否關閉時間

2023年10月24日 星期二 23:55

約瑟夫問題是乙個經典的問題,我們不妨將這個經典問題進行擴充套件,變成乙個雙向的約瑟夫問題。

已知 n 個人(不妨分別以編號 1,2,3,...,n 代表 )圍坐在一張圓桌周圍,首先從編號為 k 的人從 1 開始順時針報數,1, 2, 3, ...,記下順時針數到 m 的那個人,同時從編號為 k 的人開始逆時針報數,1, 2, 3, ...,數到 m 後,兩個人同時出列。然後從出列的下乙個人又從 1 開始繼續進行雙向報數,數到 m 的那兩個人同時出列,...;。依此重複下去,直到圓桌周圍的人全部出列。直到圓桌周圍只剩乙個人為止。

如果雙向報數報到 m 時落在同乙個人身上,那本次出列的只有乙個人。

例如:5,1,2。則總共5個人,從1開始順時針報數,數到2,定位編號2;同時從1開始報數數到2,定位編號5;2和5同時出列。然後繼續開始報數,順時針報數3,4,定位到4;逆時針報數4,3,定位3;4和3同時出列。最後剩餘的為編號1。輸出為:2-5,4-3,1,。

如果輸入:6,2,3。則輸出:4-6,2,1-3,5,。其中第2次只輸出乙個2,表示第二次雙向報數時,恰好都落在編號2上,所以只有乙個編號出列。

n,k,m

按照出列的順序依次輸出編號。同時出列編號中間用減號"-」連線。

a)輸入:n、k、m任乙個為0

輸出:n,m,k must bigger than 0.

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

1,0,0↵

以文字方式顯示

n,m,k must bigger than 0.↵ 1秒

64m0

測試用例 2

以文字方式顯示

1,2,1↵

以文字方式顯示

k should not bigger than n.↵ 1秒

64m0

測試用例 3

以文字方式顯示

5,1,2↵

以文字方式顯示

2-5,4-3,1,↵ 1秒

64m0

測試用例 4

以文字方式顯示

6,2,3↵

以文字方式顯示

4-6,2,1-3,5,↵ 1秒

64m0

跳過 導航

我的課程

輸入:k>n

輸出:k should not bigger than n.

函式第二次練習

1.編寫函式fun n n為三位自然數,判斷n是否為水仙花數,是返回1,否返回0。編寫main函式,輸入乙個數num,呼叫fun num 函式,並輸出判斷結果。includeint fun int n else return 0 int main 2.編寫函式ss n 判斷n是否為素數,是返回1,否...

第二次上機練習 2

一 問題及 二 執行結果 三 心得體會 四 知識點總結 上機內容 c 程式的編寫和執行 上機目的 簡單掌握c 程式的編輯 編譯 連線和執行的一般 一 檔名稱 xyz1.cpp 作 者 趙雲 完成日期 2016 年 03 月 10 日 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描述 無 問...

ACM第二次練習 1001

題意 t組測試例項,每組輸入y,輸出x 8 x 4 7 x 3 2 x 2 3 x 6 y。思路 簡單的二分法,首先編寫函式實現輸入x求得上式的值。然後二分法搜尋下即可。感想 最初寫的那個程式總是超時,後來參照c進行了優化才過的,c裡面有些東西還是值得借鑑的。留作檢查超時錯誤 include inc...