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

即可。

相关推荐
用户03048059126312 小时前
Spring Validation教程
java
Hello.Reader12 小时前
DTO / VO / BO / Entity 分层到底怎么用?
java·分层
云梦谭12 小时前
AI 生成的FreeSWITCH 呼出流程深度分析freeswitch-1.10.12.-release
java·前端·php
红石程序员12 小时前
Python环境管理
开发语言·python
随机昵称_12345612 小时前
RSA私钥解密乱码问题
java·非对称加密
Chennnng12 小时前
关于python版本,显卡版本,torch版本之间的问题
开发语言·python
龙亘川12 小时前
【课程2.4】开发环境搭建:K8s集群部署、芋道框架集成、ThingsBoard对接
java·容器·kubernetes·智慧城市·智慧城市一网统管 ai 平台
rit843249912 小时前
基于MATLAB的多变量动态矩阵控制(DMC)仿真实现
开发语言·matlab·矩阵
pyniu13 小时前
项目实站day7--功能之营业额统计,用户数量统计
java·开发语言·spring boot·spring
一周困⁸天.13 小时前
K8S-NetworkPolicy
java·开发语言