
C/C++常见面试题/算法
文章平均质量分 80
两个毫米
这个作者很懒,什么都没留下…
展开
-
求任意两个正整数的最大公约数和最小公倍数
这里用辗转相除法(也叫欧几里德算法)进行分析,辗转相除法是求最大公约数(GCD:Greatest Common Divisor)的算法,其原理是:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。注意:从其原理的角度出发,可以按下面两种方法计算出最大公约数,然后很容易就得到两个正整数的最小公倍数(LCM:Least Common Multiple)。一种是递归算法:假设原创 2013-05-08 20:36:27 · 4395 阅读 · 0 评论 -
约瑟夫斯问题及其编程
约瑟夫斯(Josephus)问题是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。并且约瑟夫斯问题的描述是这样的:有n个囚犯站成一个圆圈,准备处决。首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人。接着,再越过k-1个人,并杀掉第k个人。这个过程沿着圆圈一直进行,直到最终只剩下一个人留下,这个人就可以继续活着。 然后问题是,原创 2013-05-10 00:56:42 · 4741 阅读 · 0 评论