題目
分析
剛開始認爲左腳右腳也有關係,仔細讀了遍題,看了下網上的分析,才明白。
簡單描述下問題:有39級臺階,每次可以上一個或者兩個,走完臺階剛好走的是偶數步有多少種走法。
類似問題:青蛙跳臺階問題
先不考慮是偶數步還是奇數步,看看每次走一個臺階或兩個臺階有多少種走法,設臺階個數爲n。
- 第一步走一個臺階,則剩下n-1個臺階的走法
- 第一步走兩個臺階,剩下n-2個臺階的走法
- 當n = 1時,只有一種走法,那就是走一個臺階
- 當n = 2時,兩種走法,可以一次上去,也可以一個一個上去
- n = 0時,0種走法
列出公式:
再看問題要求:計算走完臺階後剛好是偶數步有多少種走法,需要再加一個變量來記錄步數,還需要一個變量來記錄走法數量,當步數爲偶數時,走法➕1⃣️。
碼兒:
#include <stdio.h>
int count = 0; // 走法計數器
void fun(int taijie, int bushu) // 臺階,步數
{
if(taijie < 0)
{
return;
}
if(taijie == 0)
{
if(bushu%2 == 0)
{
count++;
}
return;
}
fun(taijie-1, bushu+1);
fun(taijie-2, bushu+1);
}
int main(int argc, const char * argv[])
{
fun(39, 0); // 臺階,步數
printf("%d\n", count);
return 0;
}