首页 > 编程语言 >几种常用的算法(递归,Top-n)

几种常用的算法(递归,Top-n)

时间:2024-09-22 14:02:05浏览次数:6  
标签:return 递归 int Top pos 算法 static public

//C#用递归算法实现:一列数的规则如下: 1、1、2、3、5、8、13、21、34,求第30位数是多少
 public static int GetPosValue(int pos)
 {
     //第1位、第2位,实际上索引是0、1
     if (pos == 0 || pos == 1)  //我们习惯上,位置使用索引(从0开始,0视为是第1位)
     {
         return 1;
     }

     int posValue = GetPosValue(pos - 1) + GetPosValue(pos - 2);

     return posValue;
 }


 //1+2+3+4+5+.....n
 public static int SumValue(int n)
 {
     if (n == 1)
     {
         return 1;
     }

     int sum_n = SumValue(n - 1) + n;

     return sum_n;
 }


原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
public static int Factorial(int n)
        {
            if (n == 0 || n == 1)
            {
                return 1;
            }
            else
            {
                // 递归调用:当前数n乘以前面所有数的阶乘
                return n * Factorial(n - 1);
            }
        }


 public static int ArraySum(int[] arr, int index)
        {
            if (index >= arr.Length)
            {
                // 基本情况:数组为空或者已经遍历完所有元素
                return 0;
            }
            else
            {
                // 递归调用:当前元素加上剩余元素的总和
                return arr[index] + ArraySum(arr, index + 1);
            }
        }


int max1=0,max2=0;
public int GetTop2(int[] array)
{
    for (int i = 0; i < array.Length; i++)
    {
        if (array[i] > max2)
        {
            max1 = max2;
            max2 = array[i];
        }
    }
    return max1;
}

标签:return,递归,int,Top,pos,算法,static,public
From: https://www.cnblogs.com/changbaishan/p/18425212

相关文章

  • [数据结构与算法·C++] 笔记 1.4 算法复杂性分析
    1.4算法复杂性分析算法的渐进分析数据规模n逐步增大时,f(n)的增长趋势当n增大到一定值以后,计算公式中影响最大的就是n的幂次最高的项其他的常数项和低幂次项都可以忽略大O表示法函数f,g定义域为自然数,值域非负实数集定义:如果存在正数c和n,使得对任意的......
  • 【代码随想录Day24】回溯算法Part03
    93.复原IP地址题目链接/文章讲解:代码随想录视频讲解:回溯算法如何分割字符串并判断是合法IP?|LeetCode:93.复原IP地址_哔哩哔哩_bilibiliclassSolution{List<String>result=newArrayList<>();LinkedList<String>path=newLinkedList<>();publicL......
  • 算法解析:二分查找实现整数平方根
    题目:给你一个非负整数 x ,计算并返回 x 的算术平方根 。由于返回类型是整数,结果只保留整数部分 ,小数部分将被舍去。注意:不允许使用任何内置指数函数和算符,例如 pow(x,0.5) 或者 x**0.5 。示例1:输入:x=4输出:2示例2:输入:x=8输出:2解释:8的算术平方根是2.82842.........
  • 性能瓶颈TOP榜,你中招了吗?
    专业在线打字练习网站-巧手打字通,只输出有价值的知识。前言系统性能如同企业的生命线,一丝瓶颈都可能引发连锁反应。本次“巧手打字通课堂”将带您深入剖析那些隐藏在背后的性能杀手,让我们一起来揭开它们的神秘面纱。一并行处理的那些难题1.锁粒度,要细化你能看出下面代码......
  • 初识算法
    持续更新数据结构与算法专题,欢迎关注.......1.1什么是算法?定义在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算Inmathematicsandcomputerscience,analgorithm(/ˈælɡərɪðəm/)isafinitesequenceofrigorousinstru......
  • leetcode 算法题目学习笔记 - 序号1
    1.两数之和https://leetcode.cn/problems/two-sum/简要说明:1.给定一个数组和一个数字2.要求找到数组中某两个元素,使得他们相加等于所给数字(将所给数字拆为数组中的某两个个元素)3.以数组形式返回两个下标否则返回空指针返回的下标没有顺序要求假设有唯一解,即只能在数组中......
  • C++ 笔试常用算法模板
    C++笔试常用算法模板一、二叉树遍历DFSBFS二、回溯模板三、动态规划01背包朴素版本滚动数组优化完全背包朴素版本滚动数组优化最长递增子序列朴素版本贪心+二分优化最长公共子序列最长回文子串四、图建图邻接矩阵邻接表图的遍历DFSBFS拓扑排序并查集最小生成树Kr......
  • 双指针算法专题(2)
    找往期文章包括但不限于本期文章中不懂的知识点:个人主页:我要学编程(ಥ_ಥ)-CSDN博客所属专栏: 优选算法专题想要了解双指针算法的介绍,可以去看下面的博客:双指针算法的介绍 目录611.有效三角形的个数LCR179.查找总价格为目标值的两个商品15.三数之和18.四数之和......
  • 滑动窗口算法专题(1)
    找往期文章包括但不限于本期文章中不懂的知识点:个人主页:我要学编程(ಥ_ಥ)-CSDN博客所属专栏: 优选算法专题目录滑动窗口算法的简介209.长度最小的子数组3.无重复字符的最长子串1004.最大连续1的个数III1658.将×减到0的最小操作数滑动窗口算法的简介滑动窗口......
  • 水母搜索算法(JS)优化BP神经网络原理及Matlab代码
    目录0引言1数学模型2优化方式3Matlab代码3.1伪代码3.2 JS主函数代码3.2JS-BP4视频讲解0引言水母搜索算法(JellyfishSearch,JS)是由Jui-ShengChou在2020年基于水母搜索行为提出的群智能算法。该算法模拟水母搜索行为的包括它们的洋流跟随,它们在水母群中的运......