xiaoz吧 关注:37贴子:420
  • 16回复贴,共1

【任务帖】2014年8月12日C语言题目- 约瑟夫环

只看楼主收藏回复



IP属地:湖北1楼2014-08-12 00:10回复
    题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
    很多同学看着是不是很眼熟呀


    IP属地:湖北2楼2014-08-12 00:12
    回复
      书上的题目


      3楼2014-08-12 10:00
      收起回复
        #include <stdio.h>
        void main()
        {
        int a,b,i,n,p[20];
        printf("请输入有多少的人");
        scanf("%d",&n);
        for(i=1;i<n+1;i++)
        p[i]=i;
        i=1; //成员的编码
        a=0; //报数的数字
        b=0; //被淘汰的人的个数
        while(b<n-1)
        {
        if(p[i]!=0)
        a++;
        if(a==3)
        {
        p[i]=0;
        b++;
        a=0;
        }
        i++;
        if(i==n+1)
        i=1;
        }
        for(i=1;i<n+1;i++)
        if(p[i]!=0)
        printf("第%d号没有被淘汰\n",i);
        }


        4楼2014-08-12 10:01
        收起回复
          这就 公布答案了


          IP属地:北京来自Android客户端5楼2014-08-12 12:30
          收起回复
            运行效果图:


            IP属地:湖北6楼2014-08-13 00:25
            回复


              IP属地:湖北7楼2014-08-13 00:25
              回复
                ================================================
                #include<stdio.h>
                #define nmax 50
                int main(void)
                {
                int i=0,k=0,m=0,n,num[nmax],*p;
                printf("please input the total of numbers:");
                scanf("%d",&n);//获取总数,不大于nmax
                p=num;//num的地址给了p
                for(i=0;i<n;i++)
                {
                *(p+i) = i+1;
                }//给数组的n个元素赋值
                i=0;
                while(m<n-1)
                {
                if(*(p+i)!=0)
                k++;
                if(k==3)
                {
                *(p+i) = 0;
                k = 0;
                m++;
                }
                i++;
                if(i==n)
                i = 0;
                }
                while(*p==0)
                p++;
                printf("%d is left\n",*p);
                }
                ======================================


                IP属地:湖北8楼2014-08-13 00:25
                回复
                  明天补上单向链表的做法。


                  IP属地:湖北9楼2014-08-13 00:26
                  回复
                    出这么难的题


                    IP属地:北京来自iPhone客户端10楼2014-08-13 08:56
                    回复