采用递归实现九九乘法表

下面采用递归实现九九乘法表,这主要来自论坛上的一个帖子:

http://topic.csdn.net/u/20100918/12/840f7250-a300-455a-931f-9147a118ce15.html

 

 

 

解析:

 

1.递归调用就是一直做直到满足条件后再反方向来做,这样就先打印1*1=1 然后再1*2=2 2*2=4 一直到method(9)这样子。

 

2. i开始是9,所以method1(i - 1); 会循环8次,最后i成为1,然后执行System.out.print("1*1=1/t/n"); 。输出后返回上一层,就是i=2的那层,这一层method1(i - 1); 已经执行过了,所以会执行它后边的for循环,循环完了后再返回上一层,就是i=3的那一层,这一层method1(i - 1); 同样也已经执行过了,所以会执行它后边的for循环,循环完了后再返回上一层,一直到i=9;

 

3.递归就是一个不断地入栈的过程,你从9*9=81,8*9,7*9………………一直压入栈中到1*1。最后才pop出来(出栈),所以输出地结果就是到过来的:1*1,……,7*9,8*9,9*9。

 

总结:其实递归的效率是比较低的,所以对于本题,建议采用for循环,就可以实现了,

如下:

或者

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章