V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pinews
V2EX  ›  程序员

侄女的这道题难住我了,求助!

  •  
  •   pinews · 2018-09-27 16:27:02 +08:00 · 5879 次点击
    这是一个创建于 2009 天前的主题,其中的信息可能已经有所发展或是发生改变。
    幼儿园有 50 个男生和 50 个女生,分别站成两列,然后由第一个男生报数 1,然后身边的女生报数 2,再然后由身后的女生报数 3,然后身边的男生报数 4,再然后由身后的男生报数 5,如果身边的异性没报数,由身边的异性接着报数,如果已经报过数了,由自己身后的人报数。
    一,请问报数为 45 的人是男生还是女生?他是男生或女生中第几个人报数的?
    二,请问第 45 个男生报数是多少?第 45 个女生报数是多少?

    我从 1 数到 100,刚数完又忘了,脑袋疼死了,求帮忙!!
    第 1 条附言  ·  2018-09-27 17:20:42 +08:00
    “分别站成两列”,修改为“男生一列,女生一列”,一共是两列,不是 4 列。
    45 条回复    2018-09-29 11:28:16 +08:00
    cy97cool
        1
    cy97cool  
       2018-09-27 16:33:00 +08:00
    周期为 4
    ZhLTE
        2
    ZhLTE  
       2018-09-27 16:34:27 +08:00
    男 23
    ZhLTE
        3
    ZhLTE  
       2018-09-27 16:35:23 +08:00
    然后 89,90 吗。。
    echodone
        4
    echodone  
       2018-09-27 16:39:54 +08:00   ❤️ 2
    报数情况:
    奇数位男生:1+4*( i-1 )
    偶数位男生:4+4*( i-1 )
    奇数位女生:2+4*( i-1 )
    偶数位女生:3+4*( i-1 )
    i 为该同学所在队列位置

    一,45/4 = 11...1,所以是男生,是男生中第 12 个报数
    二,第 45 个男生是奇数位,报数等于 1+4 *( 45-1 );第 45 个女生也是奇数位,报数等于 2+4 *( 45-1 )
    opengps
        5
    opengps  
       2018-09-27 16:41:15 +08:00   ❤️ 4
    看了好几遍愣是没看懂题目,在关键字“如果”那里之前,感觉就是十个蛇形来回弯曲。
    关键字“如果”那里实在没看懂
    abclearner
        6
    abclearner  
       2018-09-27 16:42:19 +08:00
    25 组 每组 2 行 /4 个( 2 男 2 女)
    weyou
        7
    weyou  
       2018-09-27 16:49:30 +08:00
    假设报的数为 k, 男女生的序号是 n
    男: 对于奇数序号 n: k = 2n-1, 偶数序号是:k = 2n
    女: 对于奇数序号 n: k = 2n, 偶数序号是:k = 2n-1

    一,k = 45, 所以要么是男奇,要么是女偶, 这个时候计算出 n = 23,是个奇数,只能是男生
    二,k = 2 * 45 - 1 = 89, k = 2 * 45 = 90
    echodone
        8
    echodone  
       2018-09-27 16:49:48 +08:00
    上面关于奇数和偶数位置的算法有问题。。。所以关于问题二的答案是错误的。。。仔细想想,搞复杂了。。直接按 4 个人分一组,14 是男生,23 是女生就好了。。所以第一题,报 45 的是第 12 组的第一个人,所以是男生;第二题,第 45 个男生和女生应该是第 23 组的第 1 个和第 2 个人。。。
    backfrw
        9
    backfrw  
       2018-09-27 16:51:08 +08:00
    小学生的题果然都是考家长的么
    pinews
        10
    pinews  
    OP
       2018-09-27 16:52:39 +08:00
    @opengps 对,就是拐来拐去的,跟 2 和 4 有关,但就是整不明白
    @echodone 是不是乘 2 啊,乘以 4,报数都超过 100 多了
    @ZhLTE 对对 应该就是这个,太感谢了
    echodone
        11
    echodone  
       2018-09-27 16:59:37 +08:00
    @pinews 嗯,是有问题的,改成 2 也是不对的。。忽略那个答案
    GTim
        12
    GTim  
       2018-09-27 17:05:47 +08:00
    @opengps 就是一个蛇形
    admol
        13
    admol  
       2018-09-27 17:06:40 +08:00
    原来的排队:
    1 男 2 女 2 男 2 女 ... 2 女 1 男 , 求第 45 个是男是女?
    把最后一个男生提到最前面
    2 男 2 女 2 男 2 女... 2 女 , 等价为求第 46 个是男是女 ?
    所以第一个问题 第 45 个是女咯

    第二个问题其实就是算 第 45 个男生前面有多少个男生和多少个女生吧
    从转换后的队列看, 第 45 个男生在 23 组上, 所以前面有 22 组男生+22 组女生, 且他在 23 组上的第一个,所以男生报 89, 90 还是一个男生, 所以第 45 个女生报 91

    不负责任的说不知道算的对不对

    way2create
        14
    way2create  
       2018-09-27 17:06:57 +08:00
    男生,45=23X2-1,所以第 23 个,然后 45X2-1=89,45X2=90
    admol
        15
    admol  
       2018-09-27 17:08:41 +08:00
    负责任的说上面结论有错 = = , 第一个问题 第 45 个应该是男
    aspave
        16
    aspave  
       2018-09-27 17:11:11 +08:00 via Android
    我觉得就一百个数,直接写在纸上比较好
    xd314697475
        17
    xd314697475  
       2018-09-27 17:11:27 +08:00
    考点:
    4 个人一组
    2 男一组,2 女一组

    示意图:
    男 1 女 2
    男 4 女 3
    ————
    男 5 女 6
    男 8 女 7
    ————
    男 9...

    第 n 组:
    男 A:4*(n-1)+1,女 A:4*(n-1)+2,
    男 B:4*(n-1)+4,女 B:4*(n-1)+3

    一:
    45/4=11 余 1
    所以是 11+1=12 组的第一个,男
    他是 11*2+1=23 个报数的

    二:
    45/2=22 余 1
    所以是 22+1=23 组
    第一个男(男 A )=4*(23-1)+1=89
    第一个女(女 A )=4*(23-1)+2=90
    pinews
        18
    pinews  
    OP
       2018-09-27 17:12:01 +08:00
    @admol 感谢了,好像好计算了
    aspave
        19
    aspave  
       2018-09-27 17:12:02 +08:00 via Android
    @aspave 可能比较快,准,简单
    MyPassWordis
        20
    MyPassWordis  
       2018-09-27 17:16:18 +08:00   ❤️ 2
    "幼儿园有 50 个男生和 50 个女生,分别站成两列" 没人觉得这句话有问题吗? 分别两列,是总共四列的意思吗?可是看后面的报数举例又像是两列,否则举的例子都不成立。看楼上也是假设这两种情况的都有。

    话说,lz 真的写程序好多年吗?
    pinews
        21
    pinews  
    OP
       2018-09-27 17:23:59 +08:00
    谢谢各位,我就算出来一个 45/2=22.5 四舍五入~~23,所以是第 23 个人报的数
    admol
        22
    admol  
       2018-09-27 17:37:53 +08:00
    @pinews #18 我第二个结论应该也是错的 = = , 因为我忘了把前面那个人去掉了

    一,请问报数为 45+1 的人是男生还是女生?他是男生或女生中第几个人报数的?
    二,请问第 45+1 个男生报数是多少?第 45+1 个女生报数是多少?


    1 2 男 1 组
    3 4 女 1 组
    5 6 男 2 组
    7 8 女 2 组
    9 10 男 3 组
    11 12 女 3 组
    ...
    41 42 男 11 组
    43 44 女 11 组
    45 46 男 12 组
    ...
    85 86 男 22 组
    87 88 女 22 组
    89 90 男 23 组
    91 92 女 23 组
    ...
    97 98 男 25 组
    99 100 女 25 组


    所以第 46 个男生报数是 90 第 46 个女生报数是 92
    pinews
        23
    pinews  
    OP
       2018-09-27 17:49:10 +08:00
    @admol 你这个办法挺好的,我明白了,你第二排顺序错了,应该是 4 3 女 1 组,这样颠倒过来再后移一位再-1 就对了
    zsdroid
        24
    zsdroid  
       2018-09-27 18:02:23 +08:00
    4 人一组,除 4 就行了啊
    maichael
        25
    maichael  
       2018-09-27 18:02:35 +08:00
    1. 45 = 22 × 2 + 1,所以 45 个报数的是男生,并且是 22 + 1,第 23 个。
    2. 45×2-1 = 89, 45×2=90
    MarginK
        26
    MarginK  
       2018-09-27 18:08:49 +08:00
    周期为 7 好吧,楼上一堆什么人。。。。。
    AcmeSa
        27
    AcmeSa  
       2018-09-27 18:10:53 +08:00
    男,23,

    89,90

    每数过 10 个男的,是一个顺序循环。也就是每数过 20 个人,是一个循环。
    Muchisan
        28
    Muchisan  
       2018-09-27 18:18:20 +08:00
    不列公式,讲道理版答案……
    4 人一组
    问题 1,到第 11 组也就是第 22 排结束时前面男生报 44,第 23 排的男生报 45
    问题 2,第 45 排的男生女生前面有 44 排,也就是 22 组,每组加 4 结果是报到 88,所以第 45 排男生报 89,女生报 90
    ukipoi
        29
    ukipoi  
       2018-09-27 18:24:05 +08:00
    1, 4,5, 8,9, 12,13 ... 2*(n-n%2)+n%2 = 2*n-n%2
    2,3,6,7,10... 2*(n-(n+1)%2)+(n+1)%2 ,令 m=n+1 => 2*((m-1)-m%2)+m%2=2*(m-1)-m%2
    ukipoi
        30
    ukipoi  
       2018-09-27 18:28:53 +08:00
    @ukipoi
    单纯看数字的话。
    男生除去相邻报数的偏差,就是很简单的找规律问题了。
    所以解决相邻数字的偏差就行了
    GeruzoniAnsasu
        31
    GeruzoniAnsasu  
       2018-09-27 18:29:24 +08:00
    看了这个题,我意识到我小学那些成绩不好的同学就算当了家长成绩还是当年那样

    12
    43
    56
    87
    ..
    ..
    ..

    这样对吧

    为啥会有人说周期是 7

    →↓
    ↓←
    →↓
    ↓←
    这周期不就是 4 吗
    reself
        32
    reself  
       2018-09-27 18:31:08 +08:00 via Android
    "如果身边的异性没报数,由身边的异性接着报数,如果已经报过数了,由自己身后的人报数。"

    抱歉,我的语文是体育老师教的看不懂
    JerryV2
        33
    JerryV2  
       2018-09-27 18:32:23 +08:00
    周期是 4,45 处于第一个周期第一位,所以是男生
    男生序号从 1 开始,序号与报数关系:
    序号是奇数的,报数为 2N-1
    序号是偶数的,报数为 2N
    第 45 个男生是序号是奇数,报数为 89
    89 处于一个周期的第一位,下一个报数的是身边的女生,也就是第 45 个女生,所以女生报数 90
    xenme
        34
    xenme  
       2018-09-27 18:36:35 +08:00 via iPhone
    这个还需要想么?程序员按照规律遍历一边输出结果就好了
    JerryV2
        35
    JerryV2  
       2018-09-27 18:39:27 +08:00
    @JerryV2
    尴尬了,没删干净,
    45 处于 [第] 一个周期第一位,把第删掉
    LeonKennedy
        36
    LeonKennedy  
       2018-09-27 18:43:01 +08:00
    这就好比,推理故事没有那么多事,非得加那么多设定,所以才这么绕人
    xxuuaa
        37
    xxuuaa  
       2018-09-27 18:58:45 +08:00
    男:A2n = 4n
    : A2n-1 = 4n - 3
    女:A2n = 4n - 1
    : A2n-1 = 4n - 2
    n 是第几个男生或女生
    45 = 4 * 12 - 3 , 所以是第 12 个男生
    男生 45:A2*23-1 = 4 * 23 - 3 = 89
    女生 45:A2*23-1 = 4 * 23 - 2 = 90
    loading
        38
    loading  
       2018-09-27 19:22:49 +08:00 via Android
    那张纸就解决了,别多想。100 个人不多。
    Cabana
        39
    Cabana  
       2018-09-27 21:50:07 +08:00 via Android
    那几个“如果”看得我一脸懵逼🙃
    AX5N
        40
    AX5N  
       2018-09-28 03:45:58 +08:00   ❤️ 1
    这道题不是口算就得了么

    4 个人为 1 个周期,偶数号(2n)的男生位于周期的最后一名,报的数是 4n,即号数的 2 倍。

    45 最接近 4 的倍数是 44,所以 45 是 44 后面一名男生,44 号对应的男生是 22 名,所以 45 号就是 23 名。
    第 45 个男生就是第 44 个男生的后面一名,第 44 个男生报的号是 88,那第 45 个男生报的号就是 89 咯。

    有那么复杂嘛
    abccccabc
        41
    abccccabc  
       2018-09-28 09:49:41 +08:00
    @AX5N 你这个方法最简单了
    PulpFunction
        42
    PulpFunction  
       2018-09-28 10:53:22 +08:00
    示意图:
    男 1 女 2
    男 4 女 3
    ————
    男 5 女 6
    男 8 女 7




    一,解:
    45/4 余 1 在 4 人这个小分组的余 1 就是男滴 余 2,3 就是女滴

    位置看起来像是
    男 1 女 2
    男 4 女 3
    ————
    男 5 女 6
    男 8 女 7



    男 45 女 46

    再 45/2 也是 22 余 1 按俩男分组,报号再第 22 组再多一个 就是 23 号

    答:男滴,23

    二,解
    第 45 个女(男)的编号奇偶也是 /2 看 余 1
    那么看起来就是

    女 1 号
    女 2
    ---
    .
    .
    .
    ---
    女 45 号

    答:显然 44 行之前都是满人,88,男 45,女 45 就 89,90
    py2ex
        43
    py2ex  
       2018-09-28 10:59:09 +08:00   ❤️ 1
    偷换主语
    这种题目不是考逻辑,实际上是考语法
    itsluo
        44
    itsluo  
       2018-09-28 11:55:57 +08:00
    这题 需要 从 一 数吗。。找下规律就知道了。
    WhileL
        45
    WhileL  
       2018-09-29 11:28:16 +08:00
    写个循环就好
    int x = 1;//1 男 0 女
    int n1 = 1;//男报数
    int n0 = 1;//女报数
    for (int i = 1; i <= 100; i++) {
    x = (i % 2 == 0 ? (x==0?1:0) : (x==0?0:1));
    Response.Write(i+":("+(x==1?"男报"+n1++:"女报"+n0++)+") ");
    }

    -------------------------------------------------------------------------------------------------------------------
    1:(男报 1 ) 2:(女报 1 ) 3:(女报 2 ) 4:(男报 2 ) 5:(男报 3 ) 6:(女报 3 ) 7:(女报 4 ) 8:(男报 4 ) 9:(男报 5 ) 10:(女报 5 ) 11:(女报 6 ) 12:(男报 6 ) 13:(男报 7 ) 14:(女报 7 ) 15:(女报 8 ) 16:(男报 8 ) 17:(男报 9 ) 18:(女报 9 ) 19:(女报 10 ) 20:(男报 10 ) 21:(男报 11 ) 22:(女报 11 ) 23:(女报 12 ) 24:(男报 12 ) 25:(男报 13 ) 26:(女报 13 ) 27:(女报 14 ) 28:(男报 14 ) 29:(男报 15 ) 30:(女报 15 ) 31:(女报 16 ) 32:(男报 16 ) 33:(男报 17 ) 34:(女报 17 ) 35:(女报 18 ) 36:(男报 18 ) 37:(男报 19 ) 38:(女报 19 ) 39:(女报 20 ) 40:(男报 20 ) 41:(男报 21 ) 42:(女报 21 ) 43:(女报 22 ) 44:(男报 22 ) 45:(男报 23 ) 46:(女报 23 ) 47:(女报 24 ) 48:(男报 24 ) 49:(男报 25 ) 50:(女报 25 ) 51:(女报 26 ) 52:(男报 26 ) 53:(男报 27 ) 54:(女报 27 ) 55:(女报 28 ) 56:(男报 28 ) 57:(男报 29 ) 58:(女报 29 ) 59:(女报 30 ) 60:(男报 30 ) 61:(男报 31 ) 62:(女报 31 ) 63:(女报 32 ) 64:(男报 32 ) 65:(男报 33 ) 66:(女报 33 ) 67:(女报 34 ) 68:(男报 34 ) 69:(男报 35 ) 70:(女报 35 ) 71:(女报 36 ) 72:(男报 36 ) 73:(男报 37 ) 74:(女报 37 ) 75:(女报 38 ) 76:(男报 38 ) 77:(男报 39 ) 78:(女报 39 ) 79:(女报 40 ) 80:(男报 40 ) 81:(男报 41 ) 82:(女报 41 ) 83:(女报 42 ) 84:(男报 42 ) 85:(男报 43 ) 86:(女报 43 ) 87:(女报 44 ) 88:(男报 44 ) 89:(男报 45 ) 90:(女报 45 ) 91:(女报 46 ) 92:(男报 46 ) 93:(男报 47 ) 94:(女报 47 ) 95:(女报 48 ) 96:(男报 48 ) 97:(男报 49 ) 98:(女报 49 ) 99:(女报 50 ) 100:(男报 50 )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5407 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 07:52 · PVG 15:52 · LAX 00:52 · JFK 03:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.