论坛: 编程破解 标题: 求解:报数问题(C语言) 复制本贴地址    
作者: 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号