C#,.NET常见算法

news2024/9/22 9:35:59

1.递归算法

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

using System;

namespace C_Sharp_Example
{
    public class  Program
    {
        /// <summary>
        /// 阶乘:一个正整数的阶乘Factorial是所有小于以及等于该数的正整数的积,0的阶乘是1,n的阶乘是n!
        /// </summary>
       public static void Main()
        {
            int result = Factorial(5);
            Console.WriteLine("5的阶乘是:"+result);
            Console.ReadLine();
        }

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

1.2.C#递归算法计算数组的和

using System;

namespace C_Sharp_Example
{
    public class  Program
    {
        /// <summary>
        /// 数组求和
        /// </summary>
       public static void Main()
        {
            int[] numbers = { 1,2,3,4,5};
            int sum = ArraySum(numbers,0);
            Console.WriteLine("数组的和是:"+sum);
            Console.ReadLine();
        }

        private static int ArraySum(int[] arr, int v)
        {
            if(v>=arr.Length)
            {
                return 0;
            }
            else
            {
                return arr[v] + ArraySum(arr, v + 1);
            }
        }
    }
}

 1.3.C#递归算法实现斐波那契数列第三十位数字

using System;

namespace C_Sharp_Example
{
    public class  Program
    {
        /// <summary>
        /// 实现斐波那契数列的第三十位,已知斐波那契数列1,1,2,3,5,8,自身计算前二个之和
        /// </summary>
       public static void Main()
        {
            int n = 30;
            int result = feibonaqi(30);
            Console.WriteLine("斐波那契数列第三十位是:"+result);
            Console.ReadLine();        
        }

        private static int feibonaqi(int v)
        {
            if(v <= 0)
            {
                return 0;
            }
            else if(v > 0 && v <=2)
            {
                return 1;
            }
            else
            {
                return feibonaqi(v - 1) + feibonaqi(v - 2);
            }
        }
    }
}

1.4.C#递归算法计算1-100的和

using System;

namespace C_Sharp_Example
{
    public class  Program
    {
        /// <summary>
        /// 计算1-100-sum
        /// </summary>
       public static void Main()
        {
            int result = SumNumber(100);
            Console.WriteLine("1+2+3+4+...+100="+result);
            Console.ReadLine();        
        }

        private static int SumNumber(int v)
        {
            if(v ==1)
            {
                return 1;
            }
            else
            {
                return v + SumNumber(v-1);
            }
        }
    }
}

2.排序算法

2.1.冒泡排序算法

using System;

namespace C_Sharp_Example
{
    public class  Program
    {
        /// <summary>
        /// 双重循环方式实现冒泡排序
        /// </summary>
       public static void Main()
        {
            int[] arr = { 1,6,4,2,3,9,8,0,7};
            int arrLength = arr.Length;
            for(int i =0; i< arr.Length -1; i++)
            {
                for(int j=0;j<arr.Length-i-1;j++)
                {
                    if(arr[j]>arr[j+1])
                    {
                        int tmp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = tmp;
                    }
                }
            }
            Console.WriteLine("排序后的顺序"+string.Join(",",arr));
            Console.ReadLine();
        }
    }
}

2.2. 使用递归算法实现冒牌排序

using System;

namespace C_Sharp_Example
{
    public class  Program
    {
        /// <summary>
        /// 递归方式实现冒泡排序
        /// </summary>
       public static void RecursiveBubbleSort(int[] arr, int arrLength)
        {
            if (arrLength == 1)
                return;

            for(int i=0; i<arrLength-1;i++)
            {
                if(arr[i] > arr[i+1])
                {
                    int tmp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = tmp;
                }
            }
            RecursiveBubbleSort(arr,arrLength-1);
        }

        private static void RecursiveBubbleSortRun()
        {
            int[] arr = { 1,6,4,2,3,9,8,0,7};
            int arrLength = arr.Length;
            RecursiveBubbleSort(arr,arrLength);
            Console.WriteLine("排序后的结果"+string.Join(",",arr));
            Console.ReadLine();
        }
    }
}

更新中 ~~~ 创作不易,喜欢点赞收藏加关注 ❤

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

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

相关文章

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(五)-无人机跟踪

目录 引言 5.3 无人机跟踪 5.3.1 无人机跟踪模型 5.3.2 无人机位置报告流程 5.3.3 无人机存在监测流程 引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everyth…

Samtec技术科普小课堂 | 一文入门射频连接器~

【摘要/前言】 在本文中&#xff0c;我们将回到基础知识&#xff0c;了解一下什么是射频连接器。如果您是信号完整性专家&#xff0c;请点击阅读原文访问我们的网站视频&#xff0c;通过我们的网络研讨会视频了解教科书上可能找不到的知识。 如果您是电气工程领域的新手&#…

Prometheus 监控Tomcat等java应用的状态

5月应用服务出现问题&#xff0c;当别的小伙伴问我&#xff0c;有没有Tomcat等应用状态的监控的时候&#xff0c;我有点儿尴尬。所以赶紧抽空部署一下。 在配置之前&#xff0c;就当已经会安装jdk和tomcat了。 一、下载jmx_exporter #linux下 cd /usr/local/prometheus wget …

新增ClamAV病毒扫描功能、支持Java和Go运行环境,1Panel开源面板v1.10.12版本发布

2024年7月19日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布了v1.10.12版本。 在这一版本中&#xff0c;1Panel新增了多项实用功能。社区版方面&#xff0c;1Panel新增ClamAV病毒扫描功能、支持Java和Go运行环境&#xff0c;同时1Panel还新增了文件编辑器…

浪潮GS企业管理软件GetChildFormAndEntityList存在反序列化漏洞

一、漏洞简介 浪潮GS 面向大中型集团企业采用SOA 架构和先进开放的GSP 应用中间件开发,形成了集团管控13 大领域15 大行业60余个细分行业的解决方案。在管理方面,浪潮GS 有效帮助企业有效实现财务集中管理、资金集中管理、资产集中管理、供应链集中管理,从而达到集团信息的…

案例|华能某风电场配电房智能巡检机器人解决方案

随着风电产业的迅猛发展&#xff0c;风电场内配电房是风电场电能传输和转换的关键节点&#xff0c;其设备运行状况直接影响到风电场的整体运行效率和安全性。传统的人工巡检方式存在效率低、误差大、安全风险高等问题&#xff0c;难以满足现代风电场对高效、可靠运维的需求。智…

第一百七十二节 Java IO教程 - Java I/O缓冲区

Java IO教程 - Java I/O缓冲区 什么是NIO&#xff1f; 在NIO中&#xff0c;我们处理I/O操作的通道和缓冲区。 像流一样的通道表示数据源/接收器和用于数据传输的Java程序之间的连接。 通道提供双向数据传输设施。我们可以使用通道来读取数据以及写入数据。根据我们的需要&a…

【python】Python常见的面试题解析:深入探索与实践,助你少走弯路

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Redis分布式系统中的主从复制

本篇文章主要对Redis的主从复制进行讲解。主要分析复制的原理&#xff0c;包括:建立复制、全量复制、部分复制、全量复制、心跳检测等。希望本篇文章会对你有所帮助。 文章目录 一、主从复制简介 二、配置主从复制模式 断开主从复制 安全性 只读 传输延迟 三、拓扑结构 四、主…

秋招复习笔记——八股文部分:网络TCP

TCP 三次握手和四次挥手 TCP 基本认识 序列号&#xff1a;在建立连接时由计算机生成的随机数作为其初始值&#xff0c;通过 SYN 包传给接收端主机&#xff0c;每发送一次数据&#xff0c;就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。 确认应答号&#xf…

字符的统计——423、657、551、696、467、535

423. 从英文中重建数字 最初思路 首先要有一个指针&#xff0c;对于3/4/5为一组地跳跃。起初想的是后瞻性&#xff0c;如果符合0-9任意&#xff0c;则更换index、跳跃。此时写了一个函数&#xff0c;用来判断s的截取段和0-9中有无符合。这个思路并没有进行下去&#xff0c;虽然…

C++ - 基于多设计模式下的同步异步⽇志系统

1.项目介绍 项⽬介绍 本项⽬主要实现⼀个⽇志系统&#xff0c; 其主要⽀持以下功能: • ⽀持多级别⽇志消息 • ⽀持同步⽇志和异步⽇志 • ⽀持可靠写⼊⽇志到控制台、⽂件以及滚动⽂件中 • ⽀持多线程程序并发写⽇志 • ⽀持扩展不同的⽇志落地⽬标地 2.开发环境 • Cent…

第二证券:净现比是什么?怎么计算?

1、净现比的含义 净现比是指运营活动产生的现金净流量与净获利的百分比&#xff0c;是用来衡量企业实在盈利才干的目标。净现比也叫做净获利现金含量&#xff0c;即企业的净获利中&#xff0c;有多少转化成现金进入我们的钱包。 2、净现比的核算 净现比的核算公式为&#xf…

聊聊预训练模型的微调

前言 Transformers 提供了一个 Trainer 类&#xff0c;处理微调在数据集上提供的任何预训练模型。 完成所有数据预处理工作后&#xff0c;只需执行几个步骤即可定义 Trainer。 最困难的部分可能是准备运行 Trainer.train() 的环境&#xff0c;因为它在 CPU 上运行速度非常慢。…

全面解析:如何开发智能的食堂采购管理系统

今天&#xff0c;小编将全面解析如何开发一个智能的食堂采购系统&#xff0c;包括需求分析、系统设计、技术选择、开发过程以及测试和部署等方面。 一、需求分析 在开发智能食堂采购系统之前&#xff0c;首先需要进行详细的需求分析。这一步至关重要&#xff0c;因为它直接决定…

【Java 数据结构】ArrayList类介绍

ArrayList类介绍 初识List接口ArrayList类ArrayList类是什么顺序表的模拟实现初始化增加元素删除元素查找元素修改元素 ArrayList类使用构造方法ArrayList源码阅读常用方法及其注意事项 初识List接口 List 是集合框架中的一个接口, 它的里面包含了一些方法, 例如add(), remove…

【Python系列】详解 open 函数:文件操作的基石

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

OpenAI 发完 GPT-4o,国内大模型行业还有哪些机会?

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量 全世界范围内的很多人&#xff0c;我也不例外&#xff0c;想象中的GPT5发布时间应该是24年中&#xff0c;但实际上OpenAI在这个时间点最强的模型是GPT4o&#xff0…

利用一维数组计算今天是今年的第几天

分析&#xff1a; 在一维数组里初始化12个月份&#xff0c;在进行判断是不是闰年&#xff0c;是闰年就把数组的二月的下标改为29&#xff0c;否则不变就按照平年计算&#xff0c;最后把想要计算的月份减1累加到sum里&#xff0c;在进行计算该月份的天也要累加。例如&#xff1a…

Python:对常见报错导致的崩溃的处理

Python的注释&#xff1a; mac用cmd/即可 # 注释内容 代码正常运行会报以0退出&#xff0c;如果是1&#xff0c;则表示代码崩溃 age int(input(Age: )) print(age) 如果输入非数字&#xff0c;程序会崩溃&#xff0c;也就是破坏了程序&#xff0c;终止运行 解决方案&#xf…