A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

KokoKevin

中级黑马

  • 黑马币:17

  • 帖子:45

  • 精华:0

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);
                }
        }

2 个回复

倒序浏览
递归其实就是方法自己调用自己,比如你定义的fun方法,执行的流程就是,如果你传的值等于1,则直接返回该值,否则就在调用fun方法,把传值减1,然后把在把结果返回给第一个fun方法,如果停止条件等于1不满足,则该方法会一直自己调用自己,直到其中的一个方法的停止条件满足,则会把结果依次的回返下去,这就是递归
回复 使用道具 举报
fun(6000)
num==6000
返回6000*fun(5999)

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

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


最后返回的值6000*5999*5998*……*1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马