描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。
两种方法:递归和普通;
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//void method_means(int n)
//{
// int m = 0;//多少种方法
// //从第三个台阶开始,后面的台阶方法数=前面两个台阶方法数之和;
// int sum[31] = {0,1,2};
// if (n ==1)
// {
// printf("1");
// }
// else if(n==2)
// {
// printf("2");
// }
// else//即n>=3的情况
// {
// int i = 0;
// for (i = 3; i<=n; i++)
// {
//
// sum[i] = sum[i - 1] + sum[i - 2];//可以用递归;
//
// }
// printf("%d",sum[n]);
//
//
//
//
// }
//
//}
//与斐波那契数原理一样,可以用递归实现;
int method_means(int n)
{
if (n <= 2)
{
return n;
}
else
{
return method_means(n-1) + method_means(n-2);
}
}
int main()
{
int n = 0;//多少阶台阶
scanf("%d",&n);
if (n >= 1 && n <= 30)
{
int sum =method_means(n);
printf("%d", sum);
}
//printf("%d", sum);不可以放到这块,因为不论n是不是符合条件,都会进行这一步,而只有符合条件sum才会被定义;
return 0;
}