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

C#经典算法面试题

C#经典算法面试题

递归算法

C#递归算法计算阶乘的方法

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。

原理:亦即n!=1×2×3×…×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

        /// <summary>/// C#递归算法计算阶乘的方法/// 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。/// 亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。/// 最终输出结果:120/// </summary>public static void RecursiveFactorial(){int result = Factorial(5);Console.WriteLine("5的阶乘为:" + result);//5!=120}public static int Factorial(int n){if (n == 0 || n == 1){return 1;}else{// 递归调用:当前数n乘以前面所有数的阶乘return n * Factorial(n - 1);}}

C#递归算法数组求

        /// <summary>/// 递归算法数组求/// 最终输出结果为:259/// </summary>public static void RecursiveArraySum(){int[] numbers = { 1, 88, 66, 4, 100 };int sum = ArraySum(numbers, 0);Console.WriteLine("数组元素的总和为:" + sum);}/// <summary>/// 计算数组元素的总和/// </summary>/// <param name="arr">arr</param>/// <param name="index">index</param>/// <returns></returns>public static int ArraySum(int[] arr, int index){if (index >= arr.Length){// 基本情况:数组为空或者已经遍历完所有元素return 0;}else{// 递归调用:当前元素加上剩余元素的总和return arr[index] + ArraySum(arr, index + 1);}}

C#使用递归算法来实现求解斐波纳契数列中第30位数的值

一列数的规则如下 : 1 、 1 、 2 、 3 、 5 、 8 、 13 、 21 、 34… 求第 30 位数是多少, 用递归算法实现。

        /// <summary>/// 使用递归算法来实现求解斐波纳契数列中第30位数的值/// 一列数的规则如下 : 1 、 1 、 2 、 3 、 5 、 8 、 13 、 21 、 34… 求第 30 位数是多少, 用递归算法实现/// 最终输出结果为:832040/// </summary>public static void FibonacciSum(){int n = 30;int result = Fibonacci(n);Console.WriteLine("第 " + n + "位斐波那契数是:" + result);}public static int Fibonacci(int n){if (n <= 0){return 0;}else if (n > 0 && n <= 2){return 1;}else{// 递归情况:调用自身计算前两个数字之和return Fibonacci(n - 1) + Fibonacci(n - 2);}}
http://www.xdnf.cn/news/306613.html

相关文章:

  • 【STM32 学习笔记】EXTI外部中断
  • 单片机-STM32部分:5、STM32CubeMX实现HAL点灯
  • Python之内省与反射应用
  • 多语言笔记系列:Polyglot Notebooks 中使用扩展库
  • Kotlin Android开发过渡指南
  • 【笔记】【B站课程 pytorch】梯度下降模型
  • 【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本(非常简洁快速)
  • 今日行情明日机会——20250506
  • 电商双十一美妆数据分析
  • TypeScript速成
  • 使用原生 CSS 实现轮播
  • # YOLOv1:开启实时目标检测的新时代
  • Python基础学习-Day17
  • 20. LangChain电商场景:构建智能客服与个性化推荐系统
  • BufferGeometryUtils
  • Qt案例 以单线程或者单生产者多消费者设计模式实现QFTP模块上传文件夹功能
  • 基于GA遗传优化的不同规模城市TSP问题求解算法matlab仿真
  • 如何在 Ubuntu 24.04 本地安装 DeepSeek ?
  • STM32H743单片机实现ADC+DMA多通道检测
  • Python生活手册-Numpy数组索引:从快递柜到咖啡店的数字化生活指南
  • 易境通货代系统:如何用一套系统解决货代多业务场景痛点?
  • 机器学习-简要与数据集加载
  • 影刀RPA中使用AI模型
  • java中hashmap源码解析(jdk1.8)
  • 代码mark:脚本获取包含全角字符的字符串的长度
  • php中serialize和unserialize的用法详解
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM-Docker(二)
  • 鸿蒙NEXT开发动画(风格的弹性缩放加载动画组件)
  • 长实公布新盘案名“花语海” 打造全新“维港都会公园圈”
  • Dubbo(99)如何在区块链系统中应用Dubbo?