#include//標頭檔案;
int main()
//把1到n分別送到group陣列;
for(i = 0;;i++)
//當i=i+1時,讓i回到第乙個人;
if(group[i] != 0)
//如果這個數不為0,m加1;
else
if(m%3 == 0)
//用m除以3的餘數來判斷這個人報的是不是3,如果是總數減1,並把這個數置0,也就是退出圈子;
if(counter == 1)
break;
//當counter=1時,說明group[0]到group[n]只有1個不為0的數,就剩這乙個人了,for迴圈結束;
}for(i=0;iif(group[i]!=0)
printf("the number left is:%d\n",group[i]);
//最後剩餘的人group[i]不為0,把它顯示出來;
return 0;
//返回值為0;
}
C語言 N個人圍成一圈報數淘汰問題
一 問題描述 有17個人圍成一圈 編號為0 16 從第 0號的人開始從 1報數,凡報到 3的倍數的人離開圈子,然後再數下去,直到最後只剩下乙個人為止。問此人原來的位置是多少號?二 問題解決 1.定義陣列記錄每個編號的狀態 是否被淘汰 2.在未被淘汰的人中檢查是否數到3,若是,淘汰此人 3.繼續此過程...
n人圍成一圈報數問題
題目 有n個人圍成一圈,順序排號。從第乙個人開始報數 從1到3報數 凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。思路 假如是8人,則需要乙個陣列將8個人的從1到8依次記下每人位數,還需要乙個模擬報數口令的變數該變數最初為0,從1到2在到3,當該變數為3時,此時對應編號的人就要退出 那麼第一...
助教c c n個人圍成一圈報數問題
以下三個問題都屬於同型別的問題,其中兩道題目是助教時的實驗題,還有一道是華為在成都招聘時的機試題目。在這三個問題中,問題1考慮的最簡單,用指標實現 問題2考慮最全面,用結構體實現 問題3用到了函式。問題1 有n個人圍成一圈,順序排號。從第乙個人開始報數,凡報到3的人退出圈子,問最後留下的是幾號?源程...