c#递归函数

在 C#中,递归函数是指在函数内部直接或间接调用自身的函数。递归函数在解决一些问题时非常有用,例如遍历树形结构、递归计算等。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 递归函数
{
    class Program
    {
        static void Main(string[] args)
        {
            Digui();

            int n = 5;  // 要计算阶乘的数
            int factorial = Factorial(n);
            Console.WriteLine($"阶乘为: {factorial}");
            Console.ReadKey();
        }
       static int i = 0;

        static void Digui()
        {


            Console.WriteLine("我是一个好人");
            Console.WriteLine("我是一个中国人");
            Console.WriteLine("我要记住日本人的罪行");
            //i大于10时,跳出或返回
            i++;
            if(i>=10)
            {
                return;
            }
            Digui();
        }

        public static int Factorial(int n)
        {
            if (n == 0 || n == 1)
            {
                return 1;
            }
            else
            {
                return n * Factorial(n - 1);
            }
        }


    }
}

结果:

在上述示例中,Factorial函数接受一个整数参数n,并使用递归的方式计算阶乘。如果n为 0 或 1,则返回 1(因为 0 的阶乘和 1 的阶乘都是 1)。否则,将n乘以n-1的阶乘,从而实现递归计算。

需要注意的是,递归函数在处理大数值或深层递归时可能会导致堆栈溢出。因此,在实际应用中,需要谨慎使用递归,并确保递归有明确的终止条件,以避免无限递归或堆栈溢出的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java核心之细说泛型

泛型是什么? 等你使用java逐渐深入以后会了解或逐步使用到Java泛型。Java 中的泛型是 JDK 5 中引入的功能之一。"Java 泛型 "是一个技术术语,表示一组与定义和使用泛型类型和方法有关的语言特性。在 Java 中,泛型类型或方法与普通…

分享axios+MQTT简单封装示例

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在19…

k8s发布nacos-server,nodeport配置注意事项

k8s发布nacos-server注册不上问题 问题描述:分析过程: 问题描述: k8s发布nacos-server做服务公用使用,nodeport暴漏服务给客户端注册, nacos:端口 8848:30601 9848:30701 分析过程&#xff1a…

二维码门楼牌管理系统在教育领域的应用及其优势

文章目录 前言一、二维码门楼牌管理系统概述二、教育领域的应用场景三、二维码门楼牌管理系统的优势四、结语 前言 随着信息技术的快速发展,二维码门楼牌管理系统在教育领域的应用越来越广泛。该系统不仅提高了地址信息的准确性,还为学校、家长和教育工…

关于华为昇腾(Ascend)AI芯片,CANN计算架构,MindSpore深度学习框架,MindStudio开发工具

1、华为昇腾生态 深度学习之前的配置都是:NVIDIA GPU / CPU CUDA Tensorflow/PyTorch 后来老美禁止 NVIDIA 卖GPU芯片给我们,于是国内企业开始发力CPU和GPU硬件,成果丰硕,虽然与NVIDIA顶级GPU还有一些差距,但是也不…

npm包停止了对 require 导入方式的支持,只允许使用import 导入方式,怎么解决

如果你发现一个npm包已经停止支持require导入方式,并且只允许使用ES6的import语法,你可以尝试以下几种方法来解决这个问题: 更新你的Node.js版本:确保你使用的Node.js版本是支持ES6模块导入的。Node.js 从 v13.2.0 开始默认支持ES…

eclipse搭建java web项目

准备条件 eclipsejdk1.8 (配置jdk环境)apache-tomcat-8.5.97(记住安装位置) 一 点击完成 开始创建javaweb项目 import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.s…

【经典案例】某大型公园构建检查监督机制项目纪实

——引入网格化监督管理机制,实现责任、人员、信息三位一体 公园管理由于其本身地域范围广的特性在工作中很难进行有效的监督检查,该公园的监督检查由不同的部门分别负责,同部门检查时往往会处于情面而使检查流于形式,并且公园的监…

Media Encoder 2024:未来媒体编码的新纪元 mac/win版

随着科技的飞速发展,媒体内容已成为我们日常生活中不可或缺的一部分。为了满足用户对高质量视频内容不断增长的需求,Media Encoder 2024应运而生,它凭借卓越的技术和创新的特性,重塑了媒体编码的未来。 Media Encoder 2024软件获…

嵌入式学习day34 网络

TCP包头: 1.序号:发送端发送数据包的编号 2.确认号:已经确认接收到的数据的编号(只有当ACK为1时,确认号才有用) TCP为什么安全可靠: 1.在通信前建立三次握手连接 SYN SYNACK ACK 2.在通信过程中通过序列号和确认号保障数据传输的完整性 本次发送序列号:上次…

LeetCode Python - 42.接雨水

目录 题目答案运行结果 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组…

【网站项目】096实验室开放管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

错误与异常之为何要异常

为什么用异常 毫无疑问,错误的存在会伴随着软件的存在.区别在于当今快节奏的计算世界, 我们的执行环境 已经改变, 所以我们需要改变错误处理, 以准确反映我们软件的开发环境. 就现今应用来说, 普遍 的是自洽(self-contained)的图形用户界面(GUIs)或是客户机/服务器体系, 例如 …

精通ChatGPT:掌握高效Prompt设计的艺术与科学

精通ChatGPT:掌握高效Prompt设计的艺术与科学 在人工智能的迅猛发展中,自然语言处理(NLP)技术已经成为了一个热门的话题。OpenAI推出的ChatGPT是基于强大的GPT-3模型,它通过深度学习的方法训练出能够理解和生成人类语…

Java面试——Netty

优质博文:IT-BLOG-CN 一、BIO、NIO 和 AIO 【1】阻塞 IO(Blocking I/O): 同步阻塞I/O模式,当一条线程执行 read() 或者 write() 方法时,这条线程会一直阻塞直到读取一些数据或者写出去的数据已经全部写出,在这期间这条…

泛微OA服务器获取 token

泛微OA服务器获取 token 文章目录 泛微OA服务器获取 token一、泛微官方方法1 ecology 系统配置2 发放/生成许可证(appid)3 限制许可证使用ip地址(该步骤也可以跳过)4 使用 postman 注册5 获取 token6 访问业务系统接口 二、java 代码获取 token三、封装到…

ospf介绍

Ospf首先是一种内部网关协议,其描述的路由信息属于同一个自制系统。所谓自制系统,即属于该自制系统的路由器都必须使用同一种内部网关协议。在这里,即为ospf。 Ospf的一些常用术语:Ospf协议的内容比较丰富,涉及的术语、定义较多。在这里有一些常用的定义: 自制系统(AS)…

4 AI系统的测试关键技术和实践

4 AI系统的测试关键技术和实践 4.1 功能测试的困局 在传统系统的功能测试中,测试工程师无论是做手工测试还是自动化测试,都必须先设计和开发测试用例,然后才能利用测试用例完成测试工作,给出测试结论。从这里可以看出,测试用例是测试工作中很重要的产出物。IEEE 610在19…

20240308-2-校招前端面试常见问题-网络及浏览器

校招前端面试常见问题【4】——网络及浏览器 1、网络相关 Q:请简述一下 HTTP 协议,以及 HTTP1.0/1.1/2.0/3.0 的区别? HTTP 协议:超文本传输协议,使用 TCP/IP 协议传输数据。是一个应用层的协议。 HTTP1.0&#xff…

特性螺旋面的刀具设计记录

最近和成型类刀具杠上了,这不最近有小伙伴提供了两个比较特殊的螺旋面工件,通常称作阴、阳转子。具体形状如下: 阴转子 阴转子端面齿形没看出有什么特殊的,但是在轴剖面齿形是内凹的,这个是比较特殊的形式。 阳转子…