| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 782 人关注过本帖
标题:请问这题怎么做~
取消只看楼主 加入收藏
z9895512
Rank: 2
等 级:论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
结帖率:100%
收藏
 问题点数:0 回复次数:3 
请问这题怎么做~
n个人围成一个圈,每个人对应一个编号,比如说,10个人,编号就是1——10。现在从第一个开始报数1,2,3这三个数。报到三的人就退出圈子,这样报到最后留下来的那个是员阿里编号为几的?(比如4个人,第一轮下来1——4报的数分别是1,2,3,1.报数为3的退出。此时,编号为1的要接上轮的编号为4的继续报数,应报数2.)

输出那个留下来的人的编号~
希望各位帮忙啊,越简洁越好~
搜索更多相关主题的帖子: 阿里 
2010-06-08 12:04
z9895512
Rank: 2
等 级:论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
收藏
得分:0 
回复 4楼 kingmacrobo
谢谢啦!学到了!
2010-06-09 10:11
z9895512
Rank: 2
等 级:论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
收藏
得分:0 
以下是引用kingmacrobo在2010-6-8 18:54:04的发言:

第一种方法:
#include
 
#define M 10
 
#define N 3
 
void main(void)
 
{
 
   int a[M], b[M];      /*数组a存放圈中人的编号,数组b存放出圈人的编号*/
 
int i, j, k;
 
   for(i = 0; i < M; i++)               /*对圈中人按顺序编号1-M*/
 
      a = i + 1;
 
   for(i = M, j = 0; i > 1; i--)
 
   {
 
/*i表示圈中人个数,初始为M个,剩1个人时结束循环;j表示当前报数人的位置*/
 
  for(k = 1; k <= N; k++)          /*1至N报数*/
 
   if(++j > i - 1) j = 0;/*最后一个人报数后第一个人接着报,形成一个圈*/


   b[M-i] = j?a[j-1]:a[i-1];    /*将报数为N的人的编号存入数组b*/
 
   if(j)
 
    for(k = --j; k < i; k++)/*压缩数组a,使报数为N的人出圈*/
 
     a[k]=a[k+1];
 
   }
 
   printf("按次序输出出圈人的编号为\n");
 
   for(i = 0;i < M - 1; i++)            /*按次序输出出圈人的编号*/
 
       printf("%6d", b);
 
   printf("\n最后一人编号为%6d\n", a[0]);               /*输出圈中最后一个人的编号*/
 
}
蓝色那两行没看懂~那个循环是输出K=N,J=0。但是对下面有什么作用我没弄清楚~ 进而 下面的我也理解不了了~
2010-06-09 11:01
z9895512
Rank: 2
等 级:论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
收藏
得分:0 
#include <stdio.h>
#define N 7
#define M 3
 main()
{
    int a[N],i,j,t=-1,k=0,*q=a,b[N];

    for(i=0,j=1;;i++)
    {   if(k==N)break;
        if(j==M+1)j=1;
        if(i==N)i=0;
        if(q[i]!=M&&j==M)b[k]=i,k++;
        if(q[i]!=M)
        {
        t=i,q[i]=j;
        j++;
        }
    }
printf("出圈顺序为");
printf("\n");
    for(i=0;i<k-1;i++)
printf("%d  ",b[i]+1);
printf("\n");
printf("最后留下来的人编号为%d\n",t+1);
}


哎··还是自己的才看得懂,看别人写的真的很头大~~~  还是谢谢各位了
2010-06-14 20:44
快速回复:请问这题怎么做~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012118 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved