一个顽猴在一座有30级台阶的小山上爬山跳跃。上山一步可跳1级或3级,求上山有多少种不同的跳法
#include <stdio.h>
#define M 30
int main(){
int function(int n);
int a = M; //一共有30级台阶
int count = 0; //一共有多少种不同跳法
count = function(a);
printf("%d级台阶上有%d种不同的跳法",a, count);
return 0;
}
int function(int n) {
if (n == 1 || n == 2) {
return 1;
}
else if (n == 3) {
return 2;
}
else {
return function(n - 1) + function(n - 3);
}
}