- 注册时间
- 2004-10-13
- 最后登录
- 2019-5-15
⑧专业
*永恒国度*
- 积分
- 14145
|
這樣一個題,一群人圍在一起,然後數數 比如10個人,數到4的人退出,然後已退出的位置不再數,直到所有人退出
如10個人的編號是:1,2,3,4,5,6,7,8,9,10
出來的次序是:4 , 8 , 2 , 7 , 3 , 10 , 9 , 1 , 6 , 5- #include<stdio.h>
- main()
- {
- int aa[255];
- int i,j,k=1,m,n;
- printf("please.....m n\n ");
- scanf("%d%d",&m,&n);
- for (i=0;i<m;i++) aa[i]=i+1; //輸入每人編號
- for (i=0,j=1;j<=m;)
- {
- while (k<=n)
- {
- i=(i+1)%m;
- if (aa[i]!=0) k++;
- }
- if (aa[i]==1) aa[i]=m+1; //避免輸出最大位置變成0 --->這裡不懂是什麼意思?
- printf("%6d",aa[i]-1); // 輸出剛出位置的 ----> 這裡為什麼要減一呢?
- aa[i]=0;
- k=1;
- j++;
- }
- }
复制代码 |
|