摘要:
前几天同学提到编程实现排列组合的算法, 要能把排列组合的结果输出. 想了一段时间未果, 同学的思路是使用递归, 比如求解找出 n 个数中 m 个数的排列和组合:step a) 求解后 n-1 个数中 m 个数的排列组合; // P(n-1, m) 或 C(n-1, m)step b) 求解后 n-1 个数中 m-1 个数的排列组合; // P(n-1, m-1) 或 C(n-1, m-1)基本情况... 阅读全文
2006年10月27日
摘要:
前几天无聊, 舍友拿来一玩具"九连环". 把玩之中, 觉得过程类似"汉诺塔", 遂考虑写个程序模拟一下.
其实过程挺简单的, 关键在于, "九连环"中除了第一个环, 其它所有的环都套着它前面的环, 因此, 要操作第 n 个环 (安装或者拆卸), 则第 n-1 个环必须在上面, 而第 n-2 个之前的所有环都不能在上面.
两个关键函数: 阅读全文
摘要:
前一段时间看到一个往年程序竞赛的题解, 有一个题目说的是求 100 的阶乘末尾有多少个 0. 题解中给出的讲解提到, 一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可. 题解中给出的求解因子 5 的个数的方法是用 n 不断除以 5, 直到结果为 0, 然后把中间得到的结果累加. 例如... 阅读全文