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

即可。

相关推荐
m0_723140231 分钟前
Python训练营-Day49
开发语言·python
白仑色1 分钟前
Spring Boot 多环境配置详解
java·spring boot·后端·微服务架构·配置管理
超级小忍4 分钟前
在 Spring Boot 中优化长轮询(Long Polling)连接频繁建立销毁问题
java·spring boot·后端
David爱编程8 分钟前
Java 中 Integer 为什么不是万能的 int 替代品?
java·后端
老马啸西风10 分钟前
个人网站一键引入免费开关评论功能 giscus
java
Z_W_H_34 分钟前
【springboot】IDEA手动创建SpringBoot简单工程(无插件)
java·spring boot·intellij-idea
HeXDev36 分钟前
【SkyWalking】服务端部署与微服务无侵入接入实战指南
java·微服务·架构·skywalking·链路追踪·微服务治理
一洽客服系统38 分钟前
网页嵌入与接入功能说明
开发语言·前端·javascript
探索java1 小时前
Java 深入解析:JVM对象创建与内存机制全景图
java·jvm
zhangfeng11331 小时前
python 数据分析 单细胞测序数据分析 相关的图表,常见于肿瘤免疫微环境、细胞亚群功能研究 ,各图表类型及逻辑关系如下
开发语言·python·数据分析·医学