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

即可。

相关推荐
2501_921649491 分钟前
全球股票行情API:如何高效获取实时与逐笔成交数据
开发语言·后端·python·金融·restful
xiaoye37082 分钟前
CentOS 7 搭建Maven私服
java·maven
甘露s2 分钟前
新手入门:传统 Web 开发与前后端分离开发的区别
开发语言·前端·后端·web
快乐得小萝卜7 分钟前
记录: python-cpp数据验证
开发语言·python
lsx2024068 分钟前
C语言中的递归
开发语言
北极糊的狐10 分钟前
MySQL常见报错分析及解决方案总结(42)---ERROR 1142 (42000): SELECT command denied
java·mysql·adb·myeclipse
福大大架构师每日一题11 分钟前
2026年3月TIOBE编程语言排行榜,Go语言排名第16,Rust语言排名14。为什么 TIOBE 指数仍然依赖搜索引擎?
开发语言·搜索引擎·rust·tiobe
摆烂小白敲代码12 分钟前
【数据结构与算法】汉诺塔问题(C++)
c语言·开发语言·数据结构·c++·算法·hanoi·汉诺塔问题
Bert.Cai14 分钟前
Python字符串strip函数作用
开发语言·python