鱼C论坛

 找回密码
 立即注册
查看: 3146|回复: 13

一个有点难度的题目

[复制链接]
发表于 2011-3-21 15:36:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 旭日东升 于 2011-4-23 17:05 编辑

20个人围成一个圈!依次编号1~20!然后从1号开始循环报数:1,2,3,1,2,3。。。。

凡是报到3的立即退出!剩下的人这样继续一直持续下去!

请问:最后一个出队列的编号是多少?

答案:20号!

有兴趣的朋友不妨试试:晚上再附上代码!
QQ截图未命名.png

Cpp1.rar

498 Bytes, 下载次数: 27

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-21 22:08:10 | 显示全部楼层
这核心好像还是Josephus问题。。。
循环队列可以做出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-22 01:51:10 | 显示全部楼层
本帖最后由 hevv 于 2011-3-22 14:28 编辑

这么经典的 题目
  ai!居然没有人关注!看来大家喜欢吹水!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-22 13:52:11 | 显示全部楼层
循环队列......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-22 13:54:16 | 显示全部楼层
你的答案写得好乱,大括号也不打,数组下标也漏了,而且直接不能编译
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-22 14:34:02 | 显示全部楼层
不是我的答案混乱!数组下标在这里编辑根本显示不出来!再说我的算出答案了,
至少在语法上没有错误了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-22 14:42:57 | 显示全部楼层
回复 4# 51641032


    这都到了数据结构的知识了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-22 19:09:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-26 11:00:54 | 显示全部楼层
回复 1# hevv
哇。。。传说中的约瑟夫问题。。。感觉数据结构的书在讲到链表的时候都会讲到阿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-26 14:28:35 | 显示全部楼层
谭浩强书上的答案
#include <stdio.h>
void main()
{
        int i,k,m,n,num[50],*p;
        printf("input the number of person:n=");
        scanf("%d",&n);
        p=num;
        for(i=0;i<n;i++)
        {
                *(p+i)=i+1;
        }
        i=0;
        k=0;
        m=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("the last one is N0.%d\n",*p);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-26 18:14:16 | 显示全部楼层
回复 10# zhangtpku


    这下两个 语言的版本都有了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2015-2-8 23:34:18 | 显示全部楼层
还没看明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 16:56:09 | 显示全部楼层
  1. #include<stdio.h>
  2. #define max 100
  3. int main(void)
  4. {
  5.         int i,j,k,a;
  6.         int que[max] = {0};
  7.         printf("请输入队列人数: ");
  8.         scanf("%d",&a);
  9.         for(i = 0;i < a;i++)
  10.         {
  11.                 que[i] = i + 1;
  12.                
  13.         }
  14.         i = j = k = 0;
  15.         while(i < a - 1)
  16.         {
  17.                 if(que[(j++)%a] != 0)
  18.                 {
  19.                         k++;
  20.                 }
  21.                 if(k == 3)
  22.                 {
  23.                         que[(j-1)%a] = 0;
  24.                         k = 0;
  25.                         i ++;
  26.                 }
  27.         }
  28.         i = 0;
  29.         while(que[i] == 0)
  30.         {
  31.                 i++;
  32.         }
  33.         printf("最后剩下的号码是%d\n",que[i]);
  34.         return 0;
  35. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 16:59:31 | 显示全部楼层
  1. #include<stdio.h>
  2. #define max 100
  3. int main(void)
  4. {
  5.         int i,j,k,a;
  6.         int que[max] = {0};
  7.         printf("请输入队列人数: ");
  8.         scanf("%d",&a);
  9.         for(i = 0;i < a;i++)
  10.         {
  11.                 que[i] = i + 1;
  12.                
  13.         }
  14.         i = j = k = 0;
  15.         while(i < a - 1)
  16.         {
  17.                 if(que[j%a] != 0)
  18.                 {
  19.                         k++;
  20.                 }
  21.                 if(k == 3)
  22.                 {
  23.                         que[j%a] = 0;
  24.                         k = 0;
  25.                         i ++;
  26.                 }
  27.                 j ++;
  28.         }
  29.         i = 0;
  30.         while(que[i] == 0)
  31.         {
  32.                 i++;
  33.         }
  34.         printf("最后剩下的号码是%d\n",que[i]);
  35.         return 0;
  36. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 15:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表