美文网首页
韩信点兵

韩信点兵

作者: ZLEIi | 来源:发表于2017-03-24 13:13 被阅读0次


/**
韩信点兵
 从1至5报数,最后一个士兵报数为1;
 从1至6报数,最后一个士兵报数为5;
 从1至7报数,最后一个士兵报数为4;
 从1至11报数,最后一个士兵报数为10
 */
// 解法1,从1开始穷举,答案:士兵有2111人
- (void)hanXinDianBing {
    NSInteger i = 0;
    while (1) {
        i+=1;
        if ((i % 5 == 1) && (i % 6 == 5) && (i % 7 == 4) && (i % 11 == 10)) {
            NSLog(@" 士兵有%ld人",(long)i);
            break;
        }
    }
}
// 解法2,改进版
/**
 1.x 除以11余10,于是可以设置x从21开始,以步长11递增.此时,只要判别前3个条件即可.
 2.或者,由以上2和4条件得知,x+1为11的倍数,也为6的倍数,11与6互素,因此x+1必须为66的倍数.于是去x=65开始,步长66递增,此时,只要判别x%5=1,与x%7=4两个条件即可
 */
- (void)hanXinDianBingFunc2 {
    NSInteger x = 65;
    while (1) {
        x += 66;
        if ((x % 5 == 1) && (x % 7 == 4)) {
            NSLog(@" 士兵有%ld人",(long)x);
            break;
            
        }
    }
}

相关文章

  • 韩信点兵

  • 韩信点兵

    引子 早晨跑步的时候,突然想到韩信点兵这个问题,想了下 不知道如何去解答这个问题,一直停留在听说阶段,于是上班的时...

  • 韩信点兵计算

    传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他没次只掠一...

  • Python实现“韩信点兵”

    题目: 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他...

  • ACM7

    韩信点兵 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 相传韩信才智过人,从不直接清点...

  • 企业管理之道-法合于道

    2022-3-10 成长学习课堂【企业管理之道-法合于道】 什么是“法合于道”呢?我们通过“韩信点兵”的故...

  • 《少做一点不会死》——精兵制胜,不以数量论英雄

    【标题】精兵致胜——不以数量论英雄 【字数】583 【正文】 我们大家都知道,古时候,韩信点兵,多多益善,古时候打...

  • 不要做“贪婪鬼”

    韩信点兵,多多益善。一堂课教学信息、知识、技能多多,一定不善。 不要做“贪婪鬼”,把知识当做免费的...

  • 鸡蛋问题(韩信点兵问题变种)

    题目 一筐鸡蛋: 1个1个拿,正好拿完。 2个2个拿,还剩1个。 3个3个拿,正好拿完。 4个4个拿,还剩1个。 ...

  • 《孙子兵法》听书笔记11 兵势篇:部下强不强,责任在领导

    兵势篇:部下强不强,责任在领导 (职场:如何做组织管理) 关键点:一、组织领导:将兵、将将。韩信点兵,多多益善。治...

网友评论

      本文标题:韩信点兵

      本文链接:https://www.haomeiwen.com/subject/flffottx.html