• Console算法递归算法示例


    ylbtech-Arithmetic:Console-算法-递归算法示例
     
    1.A,案例
    -- ========================================================
    -- ylb:算法
    -- type:递归算法
    -- thankyou:sunshine, 谢谢你的默默付出
    -- 10:50 2012-04-06
    -- ========================================================
    1.B,解决方案

    1.B.1,阶乘

    using System;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            /// <summary>
            /// ylb:阶乘
            /// </summary>
            /// <param name="args"></param>
            static void Main(string[] args)
            {
                //7!=7*6*5*4*3*2*1
                //n!=n*(n-1)!
                //结束 1!=1
                Console.WriteLine("请输入一个大于0的整数");
                int num = Convert.ToInt32(Console.ReadLine());
    
                Console.WriteLine(string.Format("这个整数{0}的阶乘为:{1}", num, fun(num)));
    
            }
            static int fun(int num)
            {
    
                if (num == 1)
                {
    
                    return 1;
                }
                else
                {
    
                    return num * fun(num - 1);
                }
            }
    
        }
    }

    1.B.2,一个经典的递归试题(一列数的规则如下: 1、1、2、3、5、8、13、21、34...... )

    using System;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 
                //求第30位数是多少, 用递归算法实现。 
                Console.WriteLine("请输入一个大于0的整数");
                int num = 30;
    
                Console.WriteLine(string.Format("求第{0}位数是{1}", num, fun(num)));
    
            }
            static int fun(int num)
            {
    
                if (num <= 0)
                {
    
                    return 0;
                }
                else if (num <= 2)
                {
    
                    return 1;
                }
                else
                {
    
                    return fun(num - 1) + fun(num - 2);
                }
            }
    
        }
    }
    1.B.2.2,一个经典的递归试题(一列数的规则如下: 1、1、2、3、5、8、13、21、34...... )(常规方法解决)
    using System;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static int Fun(int i)
            {
                int sum=0;
                int temp=1;
                int temp2=1;
                
                if(i<=0)
                {
                    sum=0;
                }
                else if(i<=2)
                {
                    sum=1;
                }
                else
                {
                    for(int j=3;j<=i;j++)
                    {
                        sum=temp+temp2;
                        temp=temp2;
                        temp2=sum;
                    }
                }
                return sum;
            }
            /// <summary>
            /// ylb:常规方法解决(非递归)
            /// </summary>
            /// <param name="args"></param>
            static void Main(string[] args)
            {
                Console.WriteLine(Fun(20));
            }
        }
    }
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    python接口自动化-json数据处理
    Fiddler-抓取手机app请求
    monkey常用命令实例
    python接口自动化-Cookie_绕过验证码登录
    python接口自动化-session_自动发文
    python接口自动化-post请求4
    python接口自动化-post请求3
    Python学习笔记第十五周
    Python学习笔记第十四周
    Python学习笔记第十二周
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2922032.html
Copyright © 2020-2023  润新知