Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2168879
  • 博文数量: 556
  • 博客积分: 11457
  • 博客等级: 上将
  • 技术积分: 5973
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 22:33
文章分类

全部博文(556)

文章存档

2013年(22)

2012年(74)

2011年(460)

分类: C/C++

2011-05-02 10:19:35

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
   圈子,问最后留下的是原来第几号的那位。
 
  1. #include<stdio.h>
  2. void main()
  3. {
  4.      int i,k,m,n,num[50],*p;
  5.      printf("Input the number of people:n=");
  6.      scanf("%d",&n);
  7.      p=num;
  8.      for(i=0;i<n;i++)
  9.      {
  10.             *(p+i)=i+1; //编号
  11.      }
  12.      i=0;
  13.      k=0;
  14.      m=0;
  15.      while(m<n-1)
  16.      {
  17.           if(*(p+i)!=0)
  18.              k++;
  19.          if(k==3)
  20.          {
  21.              *(p+i)=0;
  22.              k=0;
  23.              m++;
  24.          }
  25.          i++;
  26.           if(i==n) //报数到尾后,i恢复为0
  27.          i=0;
  28.      }
  29.        while(*p==0)
  30.          p++;
  31.      printf("猴子大王是No.%d\n",*p);
  32. }
阅读(620) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~