2016/7/7

今天所学内容为函数和递归算法。

例题1:

有5人学生坐成一排。问第5个学生多少岁,他说比第4个学生大2岁。问第4个学生多少岁,他说比第3个学生大2岁。问第3个学生多少岁,他说比第2个学生大2岁。问第2个学生多少岁,他说比第1个学生大2岁。问第1个学生多少岁,他说10岁。问第5个学生多少岁?
分析:要知道第5个学生多大,就必须知道第4个学生的年龄;要知道第4个学生多大,必须知道第3个学生的年龄;要知道第3个学生多大,就必须知道第2个学生的年龄;要知道第2个学生多大,就必须知道第1个学生的年龄。而第1个学生年龄为10岁。设第n个学生的年龄为age(n),于是有
age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(2)=10
n>1时,age(n)的公式一样,都是age(n)=age(n-1)+2。
例题2
Hanoi塔问题
传说在古代印度的贝拿勒斯圣庙里,安放了一块黄铜板,板上插了三根宝石柱(不妨设A、B、C柱),在A宝石柱上,自上而下按由小到大的顺序串有64个金盘。要求将A柱子上的64个金盘按照下面的规则移到C柱上。

规则: 

①一次只能移一个盘子; 

②盘子只能在三个柱子上存放; 

③任何时候大盘不能放在小盘上面。

原文地址:https://www.cnblogs.com/A922/p/5651504.html