解题思路:通过递归来实现,对每次递归的结果进行判断,如果走过的台阶数为39,结束递归,同时判断走的步数是否为偶数,为偶数则为sum加一,否则sum不改变。
源代码:
#include<iostream>
using namespace std;
int sum = 0;
int f(int n, int step)
{
if (n < 0)
return 0;
if (step % 2 && n == 0)
sum++;
f(n - 1, step + 1);
f(n - 2, step + 1);
}
int main()
{
f(39, 0);
cout << sum << endl;
return 0;
}
运行结果: