|
![]() | 作者: bluezzb [bluezzb]
![]() |
登录 |
18人围坐在一起,从1开始报数,数到3或其倍数的人就离开座位,其他人继续,直到最后一人。 诚待哪位大侠能帮我讲解一下。 谢谢! |
地主 发表时间: 04-08-14 13:06 |
![]() | 回复: bluehacker [bluehacker] ![]() |
登录 |
就是3的倍数去掉撒。。 可以用一个if(n%3==0)来判断。 |
B1层 发表时间: 04-08-14 16:16 |
![]() | 回复: mars_bys [mars_bys] ![]() |
登录 |
main() { int i=18,n; for(n=1;i>1;n++) { if(n%3==0) i=i-1; } printf("你坚持到了最后"); } |
B2层 发表时间: 04-08-14 21:45 |
![]() | 回复: bug_me [bug_me] ![]() |
登录 |
这题的关键是“继续”两个字 记得以前写过一个,只有10行的程序就可以 不过忘记了 下面这个将就着用吧,最近感觉人很浑,懒得去想 #include "stdio.h" #include "conio.h" #define n 20 main() { int i,k=0,m=0,num[n],*p; p=num; for(i=0;i<18;i++) *(p+i)=i+1; /*赋值*/ i=0; while(m<17) { if(*(p+i)!=0) k++; if(k==3) { *(p+i)=0; /*3的倍数用0代替,以响应上面一个IF语句,在不等0时执行K++*/ k=0; m++; } i++; if(i==18) i=0; } while(*p==0) p++; printf("%d is left\n",*p); getch(); } [此贴被 寒枫(bug_me) 在 08月14日23时42分 编辑过] |
B3层 发表时间: 04-08-14 21:57 |
![]() | 回复: mars_bys [mars_bys] ![]() |
登录 |
高手几分钟想出来的。 |
B4层 发表时间: 04-08-14 22:42 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号