使用递归算法求第30位数的值

1,1,2,3,5,8,13,21,34,55....

求第30位数的值:

递归方法:

代码如下:

class Program
    {
        static void Main(string[] args)
        {
            //找规律:
            //1,1,2,3,5,8,13,21,34,55,......
            int num = 30;
            Console.WriteLine(GetNum(30));
            Console.ReadKey();
        }
        /// <summary>
        /// 求第30位数的值
        /// </summary>
        /// <param name="i"></param>
        /// <returns></returns>
        private static int GetNum(int i)
        {
            if (i<=0)
            {
                return 0;
            }else if (i>0 && i<=2)
            {
                return 1;
            }
            else
            {
                return GetNum(i - 1) + GetNum(i - 2);
            }
        }

}

(0)

相关推荐

  • c#汉诺塔的递归算法与解析

    从左到右 A  B  C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面. 如果有3个盘子, 大中小号, 越小的越在上面, 从上面给盘子按顺序编号 1(小),2(中),3(大), 后面的原理解析引用这里的编号. 小时候玩过这个游戏, 基本上玩到第7个,第8个就很没有耐心玩了,并且操作的动作都几乎相同觉得无聊.  后来学习编程, 认识到递归, 用递归解决汉诺塔的算法也是我除了简单的排序算法后学习到的第一种算法. 至于递归,简单来说

  • 将文件夹下所有文件输出到日志文件中 c#递归算法学习示例

    算法文章,总是带给我们无穷的思考和兴趣,一个问题,多种解决方法,看你如何去思考它,对于标题所引出的问题,我觉得,使用递归是比较有效的方法,当然递归还有很多使用场合,如树型分类列表的操作等等. 注意: 使用递归时,初学者要特别注意的就是"出口",必须为递归提供一个出口,否则你的内存就要溢出了,呵呵,memory overflow大家肯定都见过,都是从那时候过来的,呵呵. 代码中的递归: 复制代码 代码如下: static void GetFiles(List<string>

  • 使用递归算法求第30位数的值

    1,1,2,3,5,8,13,21,34,55.... 求第30位数的值: 递归方法: 复制代码 代码如下: class Program    {        static void Main(string[] args)        {            //找规律:            //1,1,2,3,5,8,13,21,34,55,......            int num = 30;            Console.WriteLine(GetNum(30));

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

    方法一:递归算法 /// <summary> /// 一列数的规则如下: 1.1.2.3.5.8.13.21.34求第30位数是多少, 用递归算法实现.(C#语言) /// </summary> /// <param name="pos"></param> /// <returns></returns> public int GetNumberAtPos(int pos) { if(pos==0||pos==1)

  • javascript使用递归算法求两个数字组合功能示例

    本文实例讲述了javascript使用递归算法求两个数字组合功能.分享给大家供大家参考,具体如下: // 12 ,3,4 两个数字组合 最后结果 应该是 // 13 // 14 // 23 // 24 // 34 // 这5种 用程序 怎么算出来 // 是求组合的算法 // var arr = [12, 3, 4]; // var len = arr.length; // var result = []; // for (var i = 0; i < len; i++) { // for (va

  • C++基于递归和非递归算法求二叉树镜像的方法

    本文实例讲述了C++基于递归和非递归算法求二叉树镜像的方法.分享给大家供大家参考,具体如下: /*求二叉树镜像 -- 采用递归和非递归方法 经调试可运行源码及分析如下: ***/ #include <stdlib.h> #include <iostream> #include <queue> using std::cout; using std::cin; using std::endl; using std::queue; /*二叉树结点定义*/ typedef st

  • Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例

    本文实例讲述了Python基于递归和非递归算法求两个数最大公约数.最小公倍数.分享给大家供大家参考,具体如下: 最大公约数和最小公倍数的概念大家都很熟悉了,在这里就不多说了,今天这个是因为做题的时候遇到了所以就写下来作为记录,也希望帮到别人,下面是代码: #!/usr/bin/env python #coding:utf-8 from fractions import gcd #非递归实现 def gcd_test_one(a, b): if a!=0 and b!=0: if a>b: a,

  • Python基于递归算法求最小公倍数和最大公约数示例

    本文实例讲述了Python基于递归算法求最小公倍数和最大公约数.分享给大家供大家参考,具体如下: # 最小公倍数 def lcm(a, b, c=1): if a * c % b != 0: return lcm(a, b, c+1) else: return a*c test_cases = [(4, 8), (35, 42), (5, 7), (20, 10)] for case in test_cases: print('lcm of {} is {}'.format(*case, lcm

  • java求整数的位数方式

    目录 求整数的位数 其一 其二 其三 java整数位数判断 求整数的位数 一般有几种方法,其一是转成字符串求,缺点是字符串耗时间长:另一种是用Math.log10();用log函数:还有一种用循环除以10的方式求出:最后一种,直接判断<10,<100,<1000,<10000……或许效率挺高吧,因为不需要计算. 其一 private static int getNumLenght(long num){         num = num>0?num:-num;       

  • C语言算法练习之求二维数组最值问题

    目录 一.问题描述 二.算法实例编译环境 三.算法实例实现过程 3.1.包含头文件 3.2.定义宏和声明数组 3.3.声明相关变量 3.4.输入数组(方阵)的阶 3.5.输出 “输入的数组” 3.6.计算每行最大数据中的 最小的那一个数字 3.7.计算每行最小数据中的 最大的那一个数字 四.经典算法实例程序 4.1.main.h文件 4.2.main.c文件 五.总结 一.问题描述 求二维数组最大最小值 问题的描述 如下几点所示 1.在n 行 n 列的二维整数数组中,按以下要求选出两个数. 2.

  • C# 递归算法详解

    目录 1)1.1.2.3.5.8.......用递归算法求第30位数的值? 2)编写计算斐波那契(Fibonacci)数列的第n项函数fib(n)斐波那契数列为:0.1.1.2.3.--, 3)求1+2+3+4+5+....+n的值 4)有两个整数型数组,从小到大排列,编写一个算法将其合并到一个数组中,并从小到大排列 总结 1)1.1.2.3.5.8.......用递归算法求第30位数的值? 首先我们能够发现从第3位数起后一位数等于前两位数值之和,即:x=(x-1)+(x-2),x>2; 这里须

  • Java递归算法的使用分析

    递归算法是一种直接或者间接地调用自身的算法.在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解. 问题1:一列数的规则如下: 1.1.2.3.5.8.13.21.34 ,求第30位数是多少?使用递归实现 复制代码 代码如下: public class FibonacciSequence {    public static void main(String[] args){        System.out.println(Fribonacci(9))

随机推荐