当前位置: 首页 > news >正文

C#程序的递归方法调用

一个方法可以自我调用。这就是所谓的 递归。下面的实例使用递归函数计算一个数的阶乘:

using System;

namespace CalculatorApplication
{
    class NumberManipulator
    {
        public int factorial(int num)
        {
            /* 局部变量定义 */
            int result;

            if (num == 1)
            {
                return 1;
            }
            else
            {
                result = factorial(num - 1) * num;
                return result;
            }
        }
    
        static void Main(string[] args)
        {
            NumberManipulator n = new NumberManipulator();
            //调用 factorial 方法
            Console.WriteLine("6 的阶乘是: {0}", n.factorial(6));
            Console.WriteLine("7 的阶乘是: {0}", n.factorial(7));
            Console.WriteLine("8 的阶乘是: {0}", n.factorial(8));
            Console.ReadLine();

        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

6 的阶乘是: 720
7 的阶乘是: 5040
8 的阶乘是: 40320
  1. 参数传递
    当调用带有参数的方法时,您需要向方法传递参数。在 C# 中,有三种向方法传递参数的方式:

    方式    描述
    值参数    这种方式复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存                中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了                实参数据的安全。
    引用参数    这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改                变时,同时也改变实参的值。
    输出参数    这种方式可以返回多个值。

相关文章:

  • 智慧办公新篇章:可视化技术引领园区管理革命
  • Pikachu靶场--XSS
  • 【经典算法】LeetCode 8. 字符串转换整数 (atoi)(Java/C/Python3/Go实现含注释说明,Easy)
  • Hi3861 OpenHarmony嵌入式应用入门--总引导连接
  • 从xxl-job源码中学习Netty的使用
  • Talk|新加坡国立大学贾鑫宇:适用于高自由度机器人的运动控制器
  • 案例分享:高科技企业产品管理部门设置和产品经理岗位设置
  • Redis实现消息队列
  • 机械臂 CoppeliaSim Simulink联合仿真
  • 北航数据结构与程序设计查找与排序编程题
  • 显卡nvidia的CUDA和cuDNN的安装
  • 07-appium常用操作
  • Python 包 dhg 中超图的数据格式
  • 仿真模拟--telnet服务两种认证模式(自作)
  • 百度安全X盈科全球数据合规服务中心:推进数据安全及合规智能化创新领域深化合作
  • High-variance latent spaces
  • go sync包(二) 互斥锁(二)
  • Bureau of Contacts延迟高、卡顿、无法联机怎么办?
  • 线程间通信(生产者和消费者案例)
  • Python 获取class_name win32gui
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读