黑马程序员技术交流社区

标题: 递归好难理解啊,求大神指教!!! [打印本页]

作者: KokoKevin    时间: 2016-6-7 15:28
标题: 递归好难理解啊,求大神指教!!!
public static void main(String[] args) {
                /*int result = 1;
               
                for(int i = 1; i <= 5; i++) {
                        result = result * i;
                }
               
                System.out.println(result);*/
                System.out.println(fun(6000));
        }
       
        public static int fun(int num) {
                if(num == 1) {
                        return 1;
                }else {
                        return num * fun(num - 1);
                }
        }
作者: Fangjie    时间: 2016-6-7 16:22
递归其实就是方法自己调用自己,比如你定义的fun方法,执行的流程就是,如果你传的值等于1,则直接返回该值,否则就在调用fun方法,把传值减1,然后把在把结果返回给第一个fun方法,如果停止条件等于1不满足,则该方法会一直自己调用自己,直到其中的一个方法的停止条件满足,则会把结果依次的回返下去,这就是递归
作者: qt520    时间: 2016-6-7 16:53
fun(6000)
num==6000
返回6000*fun(5999)

fun(5999)
num==5999
返回5999*fun(5998)

一直算到fun(1),返回1


最后返回的值6000*5999*5998*……*1





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2