【C# 练习】用函数递归计算 f(n)=f(n-1)+f(n-2) f(0)=2 f(1)=3

题目:f(n)=f(n-1)+f(n-2)

f(0)=2;     f(1)=3 ,求f(40)

这个题需要用到函数递归来计算,

我们已知 f(0)和 f(1)

那么通过计算, f(2)就是 f(0)+ f(1)= 2 + 3 = 5;

创造函数F,传入值是 int n,返回值是int;

static int F(int n)
{
}

在函数中直接返回公式:

return F(n - 1) + F(n - 2);//函数递归调用

这个时候需要有一个终止递归的条件,把 f(0)和 f(1)写上去;

if (n == 0) return 2;   //终止递归的条件
if (n == 1) return 3;

在main函数中调用函数F,得到res值就是f(40)的值,作为对比算出f(2)的值:

static void Main(string[] args)
{
    int res = F(40);
    int res2 = F(2);
}

源代码如下:

using System;
//02
//f(n)=f(n-1)+f(n-2) f(0)=2 f(1)=3 ,用程序求得f(40)
namespace _05s
{
    class Program
    {
        static void Main(string[] args)
        {
            int res = F(40);
            int res2 = F(2);
            Console.WriteLine("f40:" + res);
            Console.WriteLine("f2:" + res2);
        }
        static int F(int n)
        {
            if (n == 0) return 2;   //终止递归的条件
            if (n == 1) return 3;
            return F(n - 1) + F(n - 2);//函数递归调用
        }
    }
}

打印结果如下:

三连~ 

猜你喜欢

转载自blog.csdn.net/xichi_12396/article/details/119638265