组合算法挺经典的,平时笔试也会偶尔出现。题目如下:
输入两个数 m,n,输出所有组合,例如:输入5 3,输出5 4 3 ,5 4 2, 5 4 1, 5 3 2, 5 3 1, 5 2 1, 4 3 2, 4 3 1, 4 2 1, 3 2 1.这个可以用栈实现,也可以用数组实现,自我感觉数组实现更简洁,基本思想就是“初始化---输出---出栈----入栈”。
代码如下:
下面用数组实现这个算法,如果整个算法思想掌握了,其实不管用什么实现都特别简单,只是选择的工具不通而已。
看看用数组实现的算法吧。
以上代码在VC 6.0上通过。
数组很强大,指针很强大,算法思想很重要,觉得设计算法就是设计一种艺术。