计算10的阶乘

一、不好的写法

java 复制代码
    public static void main(String[] args) {
        long fun = fun(10);
        System.out.println(fun);
    }

    public static long fun(long n) {
        if (n == 1) {
            return 1;
        }
        return n * fun(n - 1);
    }

使用递归完成需求,fun1方法会执行10次,并且第一次执行未完毕,调用第二次执行,第二次执行

未完毕,调用第三次执行...最终,最多的时候,需要在栈内存同时开辟10块内存分别执行10个fun1方法。

二、好的写法

java 复制代码
    public static void main(String[] args) {
        long fun = fun(10);
        System.out.println(fun);
    }


    public static long fun(long n) {
        int result = 1;

        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        return result;
    }

使用for循环完成需求,fun2方法只会执行一次,最终,只需要在栈内存开辟一块内存执行fun2方法

即可。

相关推荐
LXS_35710 分钟前
Day 18 C++提高 之 STL常用容器(string、vector、deque)
开发语言·c++·笔记·学习方法·改行学it
百***787534 分钟前
Step-Audio-2 轻量化接入全流程详解
android·java·gpt·php·llama
快乐肚皮40 分钟前
MySQL递归CTE
java·数据库·mysql·递归表达式
廋到被风吹走44 分钟前
【Spring】DispatcherServlet解析
java·后端·spring
王琦031844 分钟前
Python 函数详解
开发语言·python
胡伯来了1 小时前
13. Python打包工具- setuptools
开发语言·python
廋到被风吹走1 小时前
【Spring】PlatformTransactionManager详解
java·spring·wpf
小鸡吃米…1 小时前
Python 中的多层继承
开发语言·python
deng-c-f1 小时前
Linux C/C++ 学习日记(53):原子操作(二):实现shared_ptr
开发语言·c++·学习