• 韩信点兵算法


    最近,看书看到这个算法。很有意思。

    算法来源:

    话说有一次韩信带兵,人数在百人左右,然后它就那些士兵排队,3个人一行排的时候多了一个人,7个人一列排的时候少2个人,5个人排的时候刚刚好。

    刚开始碰到到这道题的时候,不过后来突然想到了一个函数,问题就比较好解决了。

    在解决这个问题之前,请大家看一个方法:Math.DivRem()

    DivRem(int a,int b,int out result):它的意思是说,输入2个整数,然后输出它们的余数。

    这里有out关键字:C# 参考之方法参数关键字:params、ref及out 如果有兴趣的话,可以学习学习。

    到这里,想到了那个方法,韩信点兵的算法的根源就是余数问题:

    static int HanXinAlgorithm()
            {
                int num1 = 0;
                int num2 = 0;
                int num3 = 0;
                int result = 0;
                for (int i = 0; i < 100; i++)
                {
                    Math.DivRem(i, 3, out num1);
                    Math.DivRem(i, 5, out num2);
                    Math.DivRem(i, 7, out num3);
                    if (num1 == 1 && num2 == 0 && num3 == 5)
                        result = i;
                }
                return result;
            }
    

     得到的结果就是:

    很简单吧!在哥给个链接。。http://zhidao.baidu.com/question/1031050.html

    希望对你们有帮助。

    作者:Lanny☆兰东才
    出处:http://www.cnblogs.com/damonlan
    Q Q:*********
    E_mail:Damon_lan@163.com or Dongcai.lan@hp.com

    本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵犯了您的版权,请及时与我联系。

  • 相关阅读:
    SpringMVC 通过post接收form参数或者json参数
    Web验证码图片的生成-基于Java的实现
    springmvc防止表单重复提交demo
    MyBatis多表映射demo
    mybatis配置ehcache缓存
    Oracle数据库Where条件执行顺序
    省选模拟10
    省选模拟8
    省选模拟9
    省选模拟7
  • 原文地址:https://www.cnblogs.com/damonlan/p/2383676.html
Copyright © 2020-2023  润新知