Java算法之递归算法-如何计算阶乘的值

上一篇学了递归之后,练习一下递归算法。

题目:使用递归算法计算阶乘的值,也就是5!=5*4*3*2*1,直接使用循环是非常简单的,这边练习一下递归算法。

先写一下两个条件

基线条件:等于1的时候返回1

递归条件:x * f(x-1)

下面直接开始写代码

package com.dlh.test.算法;import java.util.Scanner;public class 递归算法之阶乘 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num = sc.nextInt();int result = fact(num);//调用递归函数System.out.println(num+"!"+"="+result);}private static int fact(int num) {int result = 0;if (num == 1){//基线条件return 1;}else {//递归条件result = num*fact(num-1);//递归调用自己}return result;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3268746.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

学习C语言第十四天(指针练习)

1.第一题C 2.第二题C 3.第三题 00345 short类型解引用一次访问两个字节 4.第四题 6,12 5.第五题C 6.第六题 下面代码结果是0x11223300 7.第七题 int main() {int a 0;int n 0;scanf("%d %d",&a,&n);int i 0;int k 0;int sum 0;for (i 0;…

Docker 搭建Elasticsearch详细步骤

本章教程使用Docker搭建Elasticsearch环境。 一、拉取镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.2二、运行容器 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-n

【Rust】所有权OwnerShip

什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻,只能有一个owner。当这个owner超过范围,则该值会被丢弃。 String类型 为什么需…

kitti数据集转为bag

下载原始的数据集后,通过终端来运行: unzip 2011_10_03_calib.zip和 unzip 2011_10_03_drive_0047_sync.zip这样这个文件夹才算准备好: 然后去下载kitti2bag工具: pip install kitti2bag然后去2011_10_03文件夹下执行&#xf…

photoshop学习笔记——选区3 选区的变化

选区制作完成之后可以对选区进行变化 主要有: 反选:shift ctrl I 变换 修改: 边界 设置选区的边界大小 类似 CSS中的borderSize平滑 对选区的角进行平滑扩展 向外扩展选区收缩 向内收缩选区羽化 让边界变得过渡透明度 设置…

python安装python-bioformats库教程

在python中安装python-bioformats库,可能并不是那么顺利,需要注意一下细节问题。 过程中主要遇到以下报错信息: error: subprocess-exited-with-error python setup.py egg_info did not run successfully.│ exit code: 1╰─> [10 lines of output]Traceback (most rec…

Hello 算法:动画图解、一键运行的数据结构与算法教程

Hello 算法 《Hello 算法》是一份开源、免费的数据结构与算法入门教程,特别适合新手。全书采用动画图解,内容清晰易懂,学习曲线平滑,引导初学者探索数据结构与算法的知识地图。源代码可以一键运行,帮助读者通过练习提…

yolov5-7在opencv里跑自己的onnx模型

先把模型放在如下目录 运行如下代码 import cv2 import numpy as npclass Onnx_clf:def __init__(self, onnx:strdnn_model1/plane02.onnx, img_size640, classlist:list[plane]) -> None: func: 读取onnx模型,并进行目标识别para onnx:模型路径img_size:输出图片大小,和模…

智慧校园班级信息基础数据维护功能概述

在智慧校园的基础平台管理中,班级信息管理为所有的业务模块提供了最小单位的基础数据。它不仅是连接学生、教师与学校管理层的桥梁,更是优化教育资源分配、提升教学质量的催化剂。智慧校园通过融合一系列智能化工具,实现了对班级信息的精细化…

HarmonyOS 质量、测试、上架速浏

1.应用质量要求: 1. 应用体验质量建议: 功能数据完备 功能完备 数据完备 基础体验要求 基础约束 兼容性 稳定性 性能 功耗 安全…

JavaScript(17)——事件监听

什么是事件? 事件是在编程时系统内发生的动作或发生的事情,比如用户在网页上单击一个按钮 什么是事件监听? 就是让程序检测是否有事件产生,一旦有事件触发,就立刻调用一个函数做出响应,也称为绑定事件或…

扫雷小游戏纯后端版

package com.wind;import java.util.Random; import java.util.Scanner;public class ResultLei {static Random random new Random();public static void main(String[] args) {boolean end true;while (end) {System.out.println("请输入你选择的难度对应的数字&#…

MySQL大框架总结

1.DDL,DML,DQL,DCL的区别 (由于DCL是关乎用户的,以下内容重点讲述数据库,表与数据的操作,所以对DCL不详细赘述) DDL DML DQL DCL 中文/英文 数据库定义语言 data definition language 数据库操作语言 data mani…

区块链技术如何重塑医疗健康行业未来?

区块链在医疗领域的应用日益广泛,主要体现在以下几个方面: 一、医疗数据管理 电子病历管理: 区块链技术可以用于构建去中心化的电子病历系统,确保病历数据的不可篡改性和安全性。患者可以通过区块链平台安全地管理自己的电子病历…

向量数据库:大模型的海量记忆体

🏖前言 在大模型爆发以后,有越来越多的公司需要用到专有的数据库,来存放百亿级甚至是千亿级的数据。在此基础上,纷纷涌现出一些企业去探索相关数据库的落地方案。在下面的文章中,就将来聊聊,关于大模型在向…

高并发内存池——链表设计

自由链表类的设计 由于申请的空间块经过对齐之后大小至少为8,因此可以考虑在未被使用的内存块中取前8字节存储下一个空间的地址 FreeList类初步声明 class FreeList { private:void* _freelistnullptr; //自由链表头指针size_t _size0; //自由链表的长度size_t …

硅纪元AI应用推荐 | 豆包整容成了浏览器,让你的电脑秒变AI PC

“硅纪元AI应用推荐”栏目,为您精选最新、最实用的人工智能应用,无论您是AI发烧友还是新手,都能在这里找到提升生活和工作的利器。与我们一起探索AI的无限可能,开启智慧新时代! 亲爱的技术宅们、办公高手们&#xff0c…

Spring源码-从源码层面讲FactoryBean接口的使用

一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean。在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,则需要在标签中提供大量的配置信息,配置方式的灵活性是受限的。为此&#xff0c…

Vulnhub靶场DC-8练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 发现sql注入点2. sqlmap跑数据3. John解密4. 反弹shell5. exim4提权 0x04 总结 0x00 准备 下载链接:https://download.vulnhub.com/dc/DC-8.zip 介绍: This challenge is a bi…

助人利人,是自己的需要

96天 【明明德即是亲民】 帮助他人、利益他人,不是他人的需要,而是我们自己的需要,我们需要开发自己内心的宝藏 ~ 心学很简单、很平实,但是在精微之处又是深奥且广大,没有下功夫的人难于描述其中的精妙;…