n人圍成一圈,報數按順序輸出其報數的人編號

2021-08-21 11:37:36 字數 504 閱讀 7941

【問題描述】有n個人圍成一圈,按順序從1到n編號。從第乙個人開始報數,報數3的人退出圈子,下乙個人從1開始重新報數,報數3的人退出圈子。如此迴圈,直到留下最後乙個人。問留下來的人的編號。

#include#define max 50

void left_num(int *a,int n1,int m1);

int main(void)

; printf("enter n:");//n為總人數

scanf("%d",&n);

printf("enter m:");//m為所報數

scanf("%d",&m);

left_num(a,n,m);

return 0;

}void left_num(int *a,int n1,int m1)

while(outif(count==m1)

j++;

if(j==5)

j=0;

}}

n人圍成一圈報數問題

題目 有n個人圍成一圈,順序排號。從第乙個人開始報數 從1到3報數 凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。思路 假如是8人,則需要乙個陣列將8個人的從1到8依次記下每人位數,還需要乙個模擬報數口令的變數該變數最初為0,從1到2在到3,當該變數為3時,此時對應編號的人就要退出 那麼第一...

C語言 N個人圍成一圈報數淘汰問題

一 問題描述 有17個人圍成一圈 編號為0 16 從第 0號的人開始從 1報數,凡報到 3的倍數的人離開圈子,然後再數下去,直到最後只剩下乙個人為止。問此人原來的位置是多少號?二 問題解決 1.定義陣列記錄每個編號的狀態 是否被淘汰 2.在未被淘汰的人中檢查是否數到3,若是,淘汰此人 3.繼續此過程...

C語言經典例69 有n個人圍成一圈報數問題

有n個人圍成一圈,順序排號。從第乙個人開始報數 從1到3報數 凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。假設全部人都退圈,則最後乙個退圈的人就是題目中留下的那一位,詳細思路請見實現中的注釋。include intmain 當所有人都退出圈子時停止迴圈 最後退圈的人就是題中有乙個留在圈內的...