有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数
生活随笔
收集整理的這篇文章主要介紹了
有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 【問題描述】有n個人圍成一圈,按順序從1到n編號。從第一個人開始報數,報數3的人退出圈子,下一個人從1開始重新報數,報數3的人退出圈子。如此循環,直到留下最后一個人。問留下來的人的編號。
- 【輸入形式】輸入人數 n
- 【輸出形式】輸出依次退出的人的編號,和最后留下的人的編號
初步實現功能
int main() {int i, j = 0, k = 0, n;int a[30] = {0};//數組多大最大 N的上限printf("請輸入有幾個人玩游戲:");scanf("%d", &n);for (i=0; i<n; i++){a[i] = 1;//1代表活著,0代表出局}for (i=1; i<4; i=i%3+1)//控制i的值在[0,3]{if (3==i && a[j]!=0){a[j] = 0;printf("%d號玩家出局\n", j+1);k++;if (n-1 == k)break;j = (j+1)%n;continue;}if (0 == a[j]){j = (j+1)%n;i--;continue;}j = (j+1)%n;}for (i=0; i<n; i++){if (1 == a[i])printf("%d號玩家活到的最后\n", i+1);} }
?
總結
以上是生活随笔為你收集整理的有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 邮票孔的间距
- 下一篇: 建立一个通讯录的结构记录,包括姓名、年龄