递归函数-练习题

using System;

 

namespace lesson11_递归函数练习题

{

    class Program

    {

        #region 练习题1

        //使用递归的方式打印0到10

        static void A(int a)

        {

            if (a > 10)

            {

                return;

            }

            Console.Write(a+" ");

            a++;

            A(a);

        }

 

        #endregion

 

        #region 练习题2

        //传入一个值,递归求该值的阶乘 并返回 5!=1*2*3*4*5

        static int B(int a)

        {

            if (a == 0)

            {

                return 1;

            }

            return a * B(a - 1);

        }

        #endregion

 

        #region 练习题3

        //使用递归求1!+2!+3!+4!……+10!

        static int C(int a)

        {

            if (a == 1)

            {

                return 1;

            }

            return a * C(a-1);

        }

        

        static int C2(int b)

        {

            if (b == 1)

            {

                return 1;

            }

            return C(b) + C2(b - 1);

        }

 

        /*static int C2(int b)

        {

            int sum = 0;

            for (int i = 1; i <= b; i++)

            {

                sum += C(i);

            }

            return sum;

        }*/

 

        #endregion

 

        #region 练习题4

        //一根竹竿长100m 每天砍掉一半,求第十天它的长度是多少(从第0天开始)

        static float D(int a, float l)

        {

            if (a == 0)

            {

                return l;

            }

            return D(--a, l / 2.0f);

        }

 

        #endregion

 

        #region 练习题5

        //不允许使用循环语句 条件语句,在控制台中打印出1到200这200个数(提示:递归+短路)

        static bool E(int a)

        {

            Console.Write(" " + a);

            return a < 200 && E(++a);

        }

 

        #endregion

        static void Main(string[] args)

        {

            Console.WriteLine("递归函数练习题");

 

            A(0);

            Console.WriteLine();

 

            Console.WriteLine(B(3));

 

            Console.WriteLine(C2(3));

 

            Console.WriteLine(D(5, 100));

 

            E(1);

        }

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值