哈嘍啊大家晚上好!今天給大家帶來的是C語言經典題目之青蛙跳臺階。青蛙跳臺階是一個數學問題,也是一個經典的遞歸問題。假設一只青蛙要跳上一個n級臺階,它可以每次跳1級臺階或2級臺階。問:青蛙跳上這個n級臺階總共有多少種不同的跳法?
要想解決這個問題,我們首先要對問題進行分析。首先,設青蛙跳上n級臺階時有f(n)種跳法,那么在青蛙進行最后一步跳躍時,它肯定只能跳一級臺階或者兩級臺階。那么,我們就可以分兩種情況經行分析:
1.當青蛙最后一躍為一級臺階時:除去最后一級臺階,前面的n-1級臺階就會有f(n-1)種跳法;
2.當青蛙最后一躍為二級臺階時:除去最后的二級臺階,前面的n-2級臺階就會有f(n-2)種跳法;
那么,邏輯已經理清楚了,現在我們就用代碼去實現它。首先我們需要設置一個遞歸函數用來運算青蛙跳臺階的所有方法,比如:
int jump_step(int n)
{if(n <= 2) {return n;}else {return jump_step(n-1) + jump_step(n-2);}
}
最后,我們在mian函數中調用這個遞歸函數即可解決青蛙跳臺階的問題了
代碼如下:
#include <stdio.h>int jump_step(int n) {if ( n <= 2) {return 1;} else {return jump_step(n-1) + jump_step(n-2);}
}int main() {int n;printf("請輸入一個正整數:");scanf("%d", &n);printf("%d級臺階,青蛙有%d種跳法\n", n, jump_step(n));return 0;
}
那么,今天的知識分享就到此結束啦,感謝大家的支持!各位明天見!