#includeint fib(int n)
{int a = 1, b = 1, i = 0;
int c = 0;
if (n<= 2)
return 1;
else
{for (i = 0; i< n - 2; i++)
{c = a + b;
a = b;
b = c;
}
return b;
}
}
int main()
{int n;
scanf("%d", &n);
printf("%d\n", fib(n));
return 0;
}
#includeint fib(int n)
{if (n >2)
return fib(n - 1) + fib(n - 2);
else
return 1;
}
int main()
{int n;
scanf("%d", &n);
printf("%d\n", fib(n));
return 0;
}
當(dāng)n=1時,青蛙只能有一種跳法;
當(dāng)n=2時,青蛙可以先跳一階,在跳一階;也可以直接跳兩階。共兩種跳法;
當(dāng)n=3時,青蛙可以先跳一階再跳兩階,也可以先跳兩階在跳一階,還可以一階一階的跳,共三種跳法;
- 這樣理解或許有些麻煩,我們還可以采用更快的理解方式。
當(dāng)n=3時,我們可以理解為如果青蛙先跳一階,這后面我們可以理解為n=2時的跳法,若青蛙先跳兩階,后面可以理解為n=1的跳法。
以此類推,當(dāng)n=m時,跳法總數(shù) = (當(dāng)n=m-1的跳法總數(shù)) + (當(dāng)n=m-2的跳法總數(shù))。
這樣遞推就類似上面講的斐波那契數(shù)列了,但不完全一樣。
#includeint like_fib(int n)
{if (n == 1)
{return 1;
}
else if (n == 2)
{return 2;
}
else if (n >2)
{return f(n - 1) + f(n - 2);//遞歸
}
}
int main()
{printf("青蛙要跳幾個臺階=>");
int a = 0;
scanf("%d", &a);
printf("青蛙會有幾種跳法=>");
printf("%d", like_fib(a));
}
🎉🎉好嘍,今日分享到此結(jié)束咯!🎉🎉———————————萌新初上道,大佬多指教🧸
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧