围成圈报数题
圍成圈報數題
報數
報數游戲是這樣的:有n個人圍成一圈,按順序從1到n編好號。從第一個人開始報數,報到m(<n)的人退出圈子;下一個人從1開始報數,報到m的人退出圈子。如此下去,直到留下最后一個人。
本題要求編寫函數,給出每個人的退出順序編號。
函數接口定義:
void CountOff( int n, int m, int out[] );其中n是初始人數;m是游戲規定的退出位次(保證為小于n的正整數)。函數CountOff將每個人的退出順序編號存在數組out[]中。因為C語言數組下標是從0開始的,所以第i個位置上的人是第out[i-1]個退出的。
 裁判測試程序樣例:
輸入樣例
11 3輸出樣例
4 10 1 7 5 2 11 9 3 6 8 void CountOff( int n, int m, int out[] ) {for(int i=0;i<n;i++) out[i]=0;int k=0;//已出圈人數int l=0;int i=0;while(k<n){if(out[i]==0)//當out[i]==0時,該位置上的人未出圈{l++;if(l==m){k++;out[i]=k;l=0;}}i++;if(i>=n) i=0;} }總結
                            
                        - 上一篇: 满足中二魂却没啥用的 5 款开发者工具
 - 下一篇: CockroachDB-备份与恢复(5)