#递归函数问题,用C#解决斐波那契函数问题
一、斐波那契函数
这个函数,是由它的提出者斐波那契名字命名的,斐波那契函数实际上就是一个递归函数(通俗来讲,递归函数就是自己调用自己的函数);
二、函数应用
类似的函数问题题目:一个台阶共有n级,一个人从最低层的台阶开始走,他可以选择每次一级台阶一级台阶地走完,也可以选择每次跨两级台阶地走完,还可以选择通过走一步和跨两级台阶混合交叉走完…问:他可以通过多少种方案走完台阶?
举一个例子,假设共有4(即n=5)级台阶,他有以下图示种的5种方案,显然,当台阶数很大的时候,我们很难再一种方案一种方案的数,这个时候借用代码可以很轻松的实现方案数,这个代码中就会出现自己调用自己的递归函数;
实现的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace fabonacci
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入台阶的总个数:");
int n = int.Parse(Console .ReadLine ());
fabonacci_slu way = new fabonacci_slu(n);
Console.WriteLine("走{0}级台阶,一次可以走一步或者两步,总共有{1}种走法",n,way.f(n));
Console.ReadLine();
}
}
public class fabonacci_slu
{
private int n;
public int N
{
get { return n; }
set { n = value; }
}
public fabonacci_slu(int n)
{ this.n = n; }
public int f(int n)
{
if (n == 1) return 1;
else if (n == 2) return 2;
else if (n > 2)
return f(n - 1) + f(n - 2);
else return 0;
}
}
}
在控制台输入数字20,可以看到共有10946中方案。