永发信息网

有N个人围成一圈,顺序排号。从第一个开始报数,(从1到3报数),凡报道3的人退出圈子,问最后留下的

答案:6  悬赏:0  手机版
解决时间 2021-04-13 20:05
有N个人围成一圈,顺序排号。从第一个开始报数,(从1到3报数),凡报道3的人退出圈子,问最后留下的
最佳答案
#include
#define n 100
void main()
{int a[n],i,quit_num,k;
for(i=0;ia[i]=i+1;
quit_num=0;
i=0;
k=0;
while(quit_num{if(a[i]!=0)k++;
if(k==3)
{a[i]=0;
quit_num++;
k=0;
}
i++;
if(i==n)i=0;
}
for(i=0;iif(a[i]!=0)printf("%d",a[i]);
}

能看懂吗?
  再送点详解给你

  #include

  #define N 50 // 排队人数(可任意更改)
  #define CAL 3 //凡报3的人出列(可任意更改)

  //下面是排队编号函数:从h 开始的n个人依次编号1到n
  void stdline(int *h,int n)
  {
  int i;
  for(i=1;i  }

  
  void outline(int *h,int boy,int call)
  {
  int *p, chu, callnum;
  
  chu=0;
  callnum=0;//各计数器清零
  p=h; //开始时,工作指针指向数组首

  printf("出列顺序是:\n");
  while(chu  {
  if(*p!=0) callnum++; //每次加报数
  if(callnum==call) //如果某一个人报到出列数call...
  {
  printf("%5d",*p); //打印编号,表示出列
  chu++; //出列人数加1
  if(chu==boy)//如果全部出列....
  {
  *h=*p; //把最后一个出列人的编号记入地址开始处
  return; //结束
  }

  if(chu%10==0)printf("\n");//每输出10个换行
  callnum=0; //出列后,重新报数
  *p=0; //出列后,将其编号赋零,以示区别
  }
  p++; //工作指针移向下一个人,即下一个数组元素
  if(p>h+boy-1)p=h;
  }

  }

  void main()
  {
  int a[N]; //用数组模拟队列,每个元素代表一个人
  stdline(a,N);//编号
  outline(a,N,CAL);//计算并打印出列顺序
  printf("\n最后留下来的是 %d 号\n",*a);
  }
全部回答
看N/3的余数。可能是1个人,或2个人
1、(1n+2n+3n)-3n=(1n+2n)
2、(1n+2n)-3(第二次的3其实就是1)=2n
3、剩下的人为:总n人数里面的。最中间的2n那位
是2个人吗?
问N是几吗?2吧。只要喊道3就退出了,也就不能喊到3,所以是2
1、2只剩下它俩
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
竭尽全力意思是什么,竭尽所能什么意思
推荐几部经典战争片子
有什么办法可以解决目前的困难?
属狗的白羊座男人与属龙的处女座适合相处吗?
Andy is a sports fan (体育迷). He likes wa
什么才是成熟
玉竹鲜花阁地址有知道的么?有点事想过去
流完产已经一年多了半年打了两个。也没有好好
印度国王叫什么
女孩子一般喜欢什么样的东东
QQ不能聊天怎么办
三道初二几何、有图、急急急急急~
qq金豆可以用QQ红包支付不
耶稣再来时哪些人可以看到他
人怎样活着才能无忧无虑?
推荐资讯
问大家个严肃的问题,闪符到底对蛋闪有没有用
经典伤感爱情语句
游戏人生的怎么设置更新宣言,具体点,不要说
有关中国传媒大学在河南的招生信息?
耳机洞里塞了东西扬声器不响了
黄渤是新一代的喜剧之王?
华科中欧清洁与可再生能源学院到底怎么样?
东风医院在哪里啊,我有事要去这个地方
秋天吃什么好?
中山市石岐区青溪路离富华车站多远
鹦鹉鱼翻肚皮怎么办? 求解。。。。
还是DNF的PK问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?