今天总结蓝桥杯比赛的第三种问题,用递归法求解问题。第六届和第七届都考察到一个凑算式的问题,凑算公式的问题用暴力解法即可以解决,但是若是要求使用不同的数字来凑算式,那么使用递归就比使用暴力解法更加容易使用技巧,计算结果也更快。递归问题常常与数组结合使用
递归解法主要需要找准三个东西:
第一:递归退出的条件
第二:递归中每一层与上一层之间的关系
且看第一道题:
每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。
最后搭成4层的金字塔形,必须用完所有的积木。
下面是两种合格的搭法:
0
1 2
3 4 5
6 7 8 9
0
3 1
7 5 2
9 8 6 4
请你计算这样的搭法一共有多少种?
对于这个题的分析如下:
一共可以填入10个数字,并且这些数字不能是重复的,最开始想到的便是暴力枚举,然后每当其中出现满足题意的,就使计数器加一。这是一个方法,但不是一个好方法,时间复杂度和空间复杂度都比较大,采用递归就可以解决问