C++递归函数剖析.ppt

【引例1】赏麦粒 国际象棋发明人西萨·班·达依尔在国王问赏时说:“陛下,请您在这张棋盘的第1个小格里赏给我一粒麦子,在第2个小格里给2粒,第3个小格给4粒,以后每一小格都比前一小格加一倍。请您把这样摆满棋盘上所有64格的麦粒……” ? 需要多少粒麦子 f(1)=1; f(2)=2; f(3)=4; …… f(n)=2*f(n-1); 【引例2】汉诺塔问题 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 #include iostream.h void main() { void hanoi(int n,char one,char two,char three); int m; cinm; hanoi(m,A,B,C); } void hanoi(int n,char one,char two,char three) { void move(char x,char y); if(n==1) move(one,three); else { hanoi(n-1,one,t

文档评论(0)

1亿VIP精品文档

相关文档