C语言小明爬楼梯
C语言,可爱的小明特别喜欢爬楼梯,他有的时候一次爬一个台阶,有的时候一次爬两个台阶,有的时候一次爬三个台阶。如果这个楼梯有n个台阶,小明一共有多少种爬法呢?n值从键盘输入。
#include<stdio.h>
int taijie(int n);
long taijie(int n)//求n台阶数的总方法
{
long int i, a[50] = {1,2,4};
for (i = 3; i <= n; i++)
a[i] = a[i - 1]+a[i-2]+a[i-3];//根据规律推出的算法
return a[n-1];
}
void main()
{
int n;
while (1)
{
scanf_s("%d", &n);
while (n < 1 || n>47)//控制n在1到47之间
{
printf("input error,please re-enter\n");
scanf_s("%d", &n);
}
printf("%d\n", taijie(n));
}
}