《一》問題描述:
有17個人圍成一圈(編號為0~16),從第 0號的人開始從 1報數,
凡報到 3的倍數的人離開圈子,然後再數下去,直到最後只剩下乙個人為止。
問此人原來的位置是多少號?
《二》問題解決:
1.定義陣列記錄每個編號的狀態(是否被淘汰);
2.在未被淘汰的人中檢查是否數到3,若是,淘汰此人;
3.繼續此過程至所有人被淘汰;
《三》示例**:
1view code#define _crt_secure_no_warnings
2 #include 3 #include 4 #include 5 #include 67
#define n 1389
struct
mystruct10;
1415 typedef struct
mystruct people;
1617
intmain()
1826
27for (int i = 0; i < n; i++)
2831
32int count = 0;33
int i = 0;34
int index = 0;35
while (count < n-1)36
41 i++;
4243
if (i % 3 == 0)44
49 index = (index + 1) %n;
5051}52
53 printf("\n"
);54 i = 0;55
intflagnum;
56while (i
5762
else
6366 i++;67}
68 printf("\n"
);69
70 system("
pause");
71 }
n人圍成一圈報數問題
題目 有n個人圍成一圈,順序排號。從第乙個人開始報數 從1到3報數 凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。思路 假如是8人,則需要乙個陣列將8個人的從1到8依次記下每人位數,還需要乙個模擬報數口令的變數該變數最初為0,從1到2在到3,當該變數為3時,此時對應編號的人就要退出 那麼第一...
C語言經典例69 有n個人圍成一圈報數問題
有n個人圍成一圈,順序排號。從第乙個人開始報數 從1到3報數 凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。假設全部人都退圈,則最後乙個退圈的人就是題目中留下的那一位,詳細思路請見實現中的注釋。include intmain 當所有人都退出圈子時停止迴圈 最後退圈的人就是題中有乙個留在圈內的...
助教c c n個人圍成一圈報數問題
以下三個問題都屬於同型別的問題,其中兩道題目是助教時的實驗題,還有一道是華為在成都招聘時的機試題目。在這三個問題中,問題1考慮的最簡單,用指標實現 問題2考慮最全面,用結構體實現 問題3用到了函式。問題1 有n個人圍成一圈,順序排號。從第乙個人開始報數,凡報到3的人退出圈子,問最後留下的是幾號?源程...