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

即可。

相关推荐
编程彩机1 小时前
互联网大厂Java面试:从分布式架构到大数据场景解析
java·大数据·微服务·spark·kafka·分布式事务·分布式架构
青岑CTF1 小时前
攻防世界-Ics-05-胎教版wp
开发语言·安全·web安全·网络安全·php
Li emily1 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
小酒窝.1 小时前
【多线程】多线程打印1~100
java·多线程
君爱学习1 小时前
基于SpringBoot的选课调查系统
java
APIshop2 小时前
Java 实战:调用 item_search_tmall 按关键词搜索天猫商品
java·开发语言·数据库
血小板要健康2 小时前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法
淼淼7632 小时前
安装jdk1.8
java·开发语言
PfCoder2 小时前
WinForm真入门(23)---PictureBox 控件详细用法
开发语言·windows·c#·winform
Legendary_0082 小时前
Type-C 一拖二快充线:突破单口限制的技术逻辑
c语言·开发语言