📅  最后修改于: 2023-12-03 15:12:01.828000             🧑  作者: Mango
本文介绍如何用C#编写一个计算到达第 n 个楼梯的方法的程序。
有一个n个楼梯的楼梯间,上楼可以一步一步走,也可以一次跨两步走,请问到达第n个楼梯,共有多少种不同的走法。
这是一个典型的递归问题。我们可以根据到达第n个楼梯时的情况,分类讨论各种情况下到达第n个楼梯的走法数量。
用数学公式表示为:
f(n) = 1 (n = 1)
f(n) = 2 (n = 2)
f(n) = f(n-1) + f(n-2) (n > 2)
我们可以编写一个递归函数,根据上述公式计算到达第n个楼梯的走法数量。
public static int CalculateSteps(int n)
{
if (n == 1)
{
return 1;
}
else if (n == 2)
{
return 2;
}
else
{
return CalculateSteps(n - 1) + CalculateSteps(n - 2);
}
}
下面是一个简单的使用示例:
static void Main(string[] args)
{
Console.WriteLine("请输入楼梯数量:");
int n = int.Parse(Console.ReadLine());
int steps = CalculateSteps(n);
Console.WriteLine($"到达{n}个楼梯,有{steps}种不同的走法");
Console.ReadKey();
}
输出结果:
请输入楼梯数量:
5
到达5个楼梯,有8种不同的走法
本文介绍了如何用C#编写一个计算到达第n个楼梯的方法的程序。该程序使用了递归的思想,根据公式计算出到达第n个楼梯的走法数量。