本文章主要介绍了循环里嵌入递归的应用:以百度、迅雷、中兴等相关笔试题举例子
百度2011年:求一个全排列函数:
如p([1,2,3])输出:
[123]、[132]、[213]、[231]、[321]、[323]
求一个组合函数
如p([1,2,3])输出:
[1]、[2]、[3]、[1,2]、[2,3]、[1,3]、[1,2,3]
这两问可以用伪代码。
求1-N所有的排列:
1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 3 1 2 */ |
求1-N的所有组合:
请输入N:3 所有的组合如下所示 1 1 2 1 2 3 1 3 2 2 3 3 */ |
迅雷2011年:某人上楼梯可以迈1、2、3个台阶,编程实现某人上N个台阶的所有可能走法?
*请输入N:5 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 3 1 2 1 1 1 2 2 1 3 1 2 1 1 1 2 1 2 2 2 1 2 3 3 1 1 3 2 **/ |
2010年中兴面试题
编程求解:
输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,
使其和等于 m ,要求将其中所有的可能组合列出来
* 请输入M:10 请输入M:8 1 2 3 4 1 2 7 1 3 6 1 4 5 2 3 5 2 8 3 7 4 6 */ |
编程之美:电话号码对应英语单词?
|
现在给大家出两个相关的扩展问题:
27.跳台阶问题
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
求总共有多少总跳法,并分析算法的时间复杂度。
这道题最近经常出现,包括MicroStrategy等比较重视算法的公司都
曾先后选用过个这道题作为面试题或者笔试题。
2.n个骰子的点数。
把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。
输入n,打印出S的所有可能的值出现的概率。