手把手帶你用java搞定青蛙跳臺(tái)階
問題描述
一只青蛙一次可以跳上 1 級(jí)臺(tái)階,也可以跳上2 級(jí)。求該青蛙跳上一個(gè)n 級(jí)的臺(tái)階總共有多少種跳法
問題剖析
n=1

此時(shí)有一種跳法。
n=2

此時(shí)有兩種跳法。
n=3

此時(shí)有三種跳法。
n=4

此時(shí)有五種跳法。
小結(jié)
當(dāng)有n級(jí)臺(tái)階時(shí),青蛙可以跳1級(jí),也可以跳2級(jí)。如果它跳1級(jí),那么還剩下n-1級(jí)臺(tái)階;如果它跳2級(jí),那么還剩下n-2級(jí)臺(tái)階。因此n級(jí)臺(tái)階的跳法等于n-1級(jí)臺(tái)階跳法加上n-2級(jí)臺(tái)階跳法之和,也就是:

而如此遞歸下去,最后n就減到了1和2。
Java代碼示例
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int ret = frogJumping(n);
System.out.println(ret);
}
public static int frogJumping(int n) {
if(n == 1) {
return 1;
} else if(n == 2) {
return 2;
} else {
return frogJumping(n - 1) + frogJumping(n - 2);
}
}
例如,當(dāng)n=5時(shí),結(jié)果為:

附:C語言實(shí)現(xiàn)青蛙跳臺(tái)階
#include<stdio.h>
int FrogJumping(int n)
{
if (n == 1)
{
return 1;
}
else if (n == 2)
{
return 2;
}
else
{
return FrogJumping(n - 1) + FrogJumping(n - 2);
}
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = FrogJumping(n);
printf("%d級(jí)臺(tái)階有%d種跳法", n, ret);
return 0;
}
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java中的InputStreamReader和OutputStreamWriter源碼分析_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文通過示例代碼給大家解析了Java中的InputStreamReader和OutputStreamWriter知識(shí),需要的的朋友參考下吧2017-05-05
Java中BigInteger與BigDecimal類用法總結(jié)
在Java中有兩個(gè)用于大數(shù)字運(yùn)算的類,分別是java.math.BigInteger類 和 java.math.BigDecimal類,這兩個(gè)類都可以用于高精度計(jì)算,BigInteger類是針對(duì)整型大數(shù)字的處理類,而BigDecimal類是針對(duì)大小數(shù)的處理類,接下來帶大家來學(xué)習(xí)一下,在Java中如何處理大數(shù)字2023-05-05
Java數(shù)據(jù)結(jié)構(gòu)與算法之樹(動(dòng)力節(jié)點(diǎn)java學(xué)院整理)
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法之樹的相關(guān)知識(shí),最主要的是二叉樹中的二叉搜索樹,需要的朋友可以參考下2017-04-04
SpringBoot+Mybatis plus實(shí)現(xiàn)多數(shù)據(jù)源整合的實(shí)踐
本文主要介紹了SpringBoot+Mybatis plus實(shí)現(xiàn)多數(shù)據(jù)源整合的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Java編程線程同步工具Exchanger的使用實(shí)例解析
這篇文章主要介紹了Java編程線程同步工具Exchanger的使用實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
Java SpringBoot實(shí)現(xiàn)文件上傳功能的示例代碼
這篇文章主要介紹了如何利用Java SpringBoot實(shí)現(xiàn)文件上傳功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下2022-03-03
java文件下載設(shè)置中文名稱的實(shí)例(response.addHeader)
下面小編就為大家分享一篇java文件下載設(shè)置中文名稱的實(shí)例(response.addHeader),具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-12-12

