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

即可。

相关推荐
光电的一只菜鸡9 分钟前
为什么调整LSC会对AF产生影响
android·开发语言·kotlin
zhangjw3412 分钟前
第47篇:Java综合实战:电商秒杀系统(高并发场景)
java·开发语言
土司大王22 分钟前
LeetCode hot100 回溯专题总结:Java 通用模板、决策树模型
java·算法·leetcode·决策树
FOAF-lambda33 分钟前
uiautomation-new 控件方位的使用
开发语言·python
OKkankan37 分钟前
LangChain能力详解!:从工具调用到 LangSmith——让聊天模型具备实时交互能力!
开发语言·python·langchain
richard_yuu42 分钟前
AOI 实战第五篇:c_broken 漏检严重,V4 迭代背后的权衡
开发语言·深度学习·yolo
Wang's Blog1 小时前
Java框架快速入门:Spring Security+OAuth2之用户注册与唯一性校验实现
java·数据库·spring
Wang's Blog1 小时前
Java框架快速入门: Spring Security+OAuth2之多因子认证与TOTP实战
java·spring·ui
m0_734571761 小时前
深入理解C++ 析构函数<一>基本概念
开发语言·c++
滕州市燕猫虎计算机科技工作室个体工商户1 小时前
Java面试题汇总
java·开发语言