题目
理解
左右脚其实就是偶数步,不但要考虑偶数步,还要考虑第一步跨一个台阶还是两个台阶,每跨一步所跨的步数就要加1,刚开始我只想到用n一个变量,但是发现做不出来,需要两个变量n,m,n是台阶数,m是所跨步数,问题求有多少种满足条件的方法,必须有个sum来做计数器。递归还是挺难想的。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int sum = 0;
void find(int n,int m)
{
if (n < 0)
return ;
if (n == 0 && m%2==0)
{
sum++;//计数器
}
find(n - 1,m+1);
find(n - 2,m+1);
}
int main()
{
find(39, 0);
printf("%d\n",sum);
system("pause");
return 0;
}
运行结果