计算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方法

即可。

相关推荐
RainbowSea18 小时前
12. LangChain4j + 向量数据库操作详细说明
java·langchain·ai编程
RainbowSea18 小时前
11. LangChain4j + Tools(Function Calling)的使用详细说明
java·langchain·ai编程
考虑考虑1 天前
Jpa使用union all
java·spring boot·后端
用户3721574261351 天前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊1 天前
Java学习第22天 - 云原生与容器化
java
渣哥1 天前
原来 Java 里线程安全集合有这么多种
java
间彧1 天前
Spring Boot集成Spring Security完整指南
java
间彧1 天前
Spring Secutiy基本原理及工作流程
java
Java水解1 天前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆1 天前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试