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.hqwc.cn/news/535723.html

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

相关文章

ios xcode 15 PrivacyInfo.xcprivacy 隐私清单 查询应用使用的隐私api

1.需要升级mac os系统到13 兼容 xcode 15.1 2.升级mac os系统到14 兼容 xcode 15.3 3.选择 New File 4.直接搜索 privacy 能看到有个App Privacy 5.右击Add Row 7.直接选 Label Types 8.选中继续添加就能添加你的隐私清单了 苹果官网文档

使用Docker管理linux容器

文章目录 一、使用docker管理镜像 二、使用docker管理容器 一、使用docker管理镜像 1、安装操作系统,我安装的是centOS 7 ,因为centos7有着非常丰富的软件仓库,方便后续安装与docker相关的软件。 2、初始化设置, 关闭防火墙 关闭…

AHU 数据库 实验三

《数据库》实验报告 【实验名称】 实验3 数据库的连接查询 【实验目的】 1. 熟悉基本的连接查询的概念和作用; 2. 了解数据库管理系统DBMS 实现连接查询的基本方法; 3. 掌握SQL语言连接查询语句的语法和功能&#…

【Android】工厂模式中 字体大小/显示重叠/显示不完整 相关 问题分析与解决

工厂模式中 字体大小/显示重叠/显示不完整 相关 问题分析与解决 1-Factory Mode是什么?2-Factory Mode的显示界面3-找到factory模块中对应设置字体尺寸的代码4-分析与修改代码 Tips 1-Factory Mode是什么? 在Android手机中,Factory Mode&…

TypeScript(五)交叉类型,联合类型,映射类型

交叉类型 交叉类型是将多个类型合并为一个类型。可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。使用符号 & 表示。交叉类型 A & B 表示,任何一个新类型必须同时属于 A 和 B,才属于交叉类型 A & B …

金和OA jc6 viewConTemplate.action RCE漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率…

【Linux/OS学习】基础文件控制/IO——内存文件

文章目录 一、 基础文件控制1.1 系统接口open函数1.2 Linux中文件描述符1.2 C语言FILE中的文件描述符 二、重定向1. 输出重定向2. 追加重定向3. 输入重定向 tips:fd的分配规则 一个文件要有一个唯一的文件标识,以便用户识别和引用。 文件名包含3部分:文件…

基于springboot+vue的电子商务系统(源码+论文)

目录 前言 一、功能设计 二、功能实现 三、库表设计 四、论文 前言 各种购物网站现在已经成了生活中不可缺少的调味品,比如比较全面的淘宝网,还有可以进行交流问答的小红书APP,还有电脑爱好者者们的天堂京东商城等等。拥有一个功能丰富、操作方便的电子商务销售网站,可以汇…

十二:多线程服务端实现

1 理解线程 1.1 引入线程背景 多进程模型有如下缺陷: 创建进程的过程会带来一定的开销。为了完成进程间的数据交换,需要特殊的IPC技术每秒少则数十次,多则数千次的‘上下文切换’是创建进程时最大的开销 运行程序前需要将相应进程信息读入…

Python实战:采集全国5A景点名单

本文将以采集全国 5A 景点名单为例,详细介绍如何使用 Python 进行数据采集。 本文采集到全国340家5A景区的名单,包括景区名称、地区、 A级、评定年份这些字段。 一、分析数据源 为了获取权威数据,我们来到主管部门的官方网站,在右…

学生打架校园防霸凌系统可以监测到吗

随着社会的进步和教育的发展,校园安全问题日益受到社会各界的关注。其中,学生打架和校园霸凌问题尤为突出,不仅影响了学生的身心健康,也破坏了校园的和谐氛围。为了有效预防和应对这些问题,许多学校开始引入校园防霸凌…

origin修改图例为显示”长名称/单位/注释/自定义“等

背景 由于在origin作图时希望修改自动显示的图例,但每次手动更新又比较繁琐(特别是在数据量较多的情况下),为了一劳永逸 步骤 1. 在数据工作表中设置好需要修改后的名称(我写到长名称里了) 2. 修改图例的…