今天用swift实现了一些常见的递归函数,给大家分享下:
1.n的阶乘,这个就不赘述了
代码:
func recursive(n: UInt) -> UInt{
if n == 0{
return 1
} else {
var result = n * recursive(n - 1)
return result
}
}
测试代码:5的阶乘
var result = recursive(5)
println("result = \(result)")
结果:
result = 120
2.汉诺塔,源于印度的一种益智玩具,其实跟咱们中国的九连环玩法是一个道理的,题如下:
![](http://images.cnitblog.com/blog/202865/201302/21233227-fdbdf31ae5fe4ab7915f7b4352075ace.png)
分析: 假设珠子从上到下依次为a,b,c,d.... 辅助杆为2号杆
1个珠子:把a从1号杆直接移到3号杆;
2个珠子:先把a从1号杆移到2号杆,然后把b移到3号杆,再把a移到3号杆;
3个珠子:先把ab从1号杆移到2号杆(要借助3号杆,因为只能大珠子在下),然后把c从1号杆移到3号杆,然后把ab从2号杆移到3号杆(借助1号杆&