围成圈报数题
圍成圈報數(shù)題
報數(shù)
報數(shù)游戲是這樣的:有n個人圍成一圈,按順序從1到n編好號。從第一個人開始報數(shù),報到m(<n)的人退出圈子;下一個人從1開始報數(shù),報到m的人退出圈子。如此下去,直到留下最后一個人。
本題要求編寫函數(shù),給出每個人的退出順序編號。
函數(shù)接口定義:
void CountOff( int n, int m, int out[] );其中n是初始人數(shù);m是游戲規(guī)定的退出位次(保證為小于n的正整數(shù))。函數(shù)CountOff將每個人的退出順序編號存在數(shù)組out[]中。因?yàn)镃語言數(shù)組下標(biāo)是從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;//已出圈人數(shù)int l=0;int i=0;while(k<n){if(out[i]==0)//當(dāng)out[i]==0時,該位置上的人未出圈{l++;if(l==m){k++;out[i]=k;l=0;}}i++;if(i>=n) i=0;} }總結(jié)
- 上一篇: 满足中二魂却没啥用的 5 款开发者工具
- 下一篇: CockroachDB-备份与恢复(5)