|
![]() | 作者: kobe8369 [kobe8369]
![]() |
登录 |
n(n>0)个人围坐一圈,从任何一个人开始,按1,2,3---n顺时针为每个人的编号.之后,从第s(s>0)个人开始按顺时针方向进行1---m(m>0)报数,报到m的人出圈,接着从下一个人继续1---m报数,报到m的人出圈,反复进行这种报数,直到所有人都出圈为止,问他们出圈的次序??? 请各位朋友大哥帮帮忙,小弟感激不尽!!! |
地主 发表时间: 03/31 17:10 |
![]() | 回复: ltb [ltb] ![]() |
登录 |
这是我一起做过的,,幸好还保存在: 差不多,,和这个,自己改下就OK 呢!! 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 圈子,问最后留下的是原来第几号的那位。 1. 程序分析: 2.程序源代码: #define nmax 50 main() { int i,k,m,n,num[nmax],*p; printf("please input the total of numbers:"); scanf("%d",&n); p=num; for(i=0;i<n;i++) *(p+i)=i+1; i=0; k=0; m=0; while(m<n-1) { if(*(p+i)!=0) k++; if(k==3) { *(p+i)=0; k=0; m++; } i++; if(i==n) i=0; } while(*p==0) p++; printf("%d is left\n",*p); } |
B1层 发表时间: 03/31 19:30 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号