三年程序员之后的思考
? ? ? ? ?直接開始反思。
? ? ? ? ?最近有點時間,又看了看迭代,感覺這個一直一知半解,沒有認真思考過原理,沒有自己的理解。
? ? ? ??題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少對??
現在就來說說什么才是最重要的,我認為不是問題的答案,最重要的是思考,思考我如何去解決這個問題。
以下是解題想法:
1月:1(最開始1)
2月:1(最開始1)
3月:1(上月1)+1(新出生1)
4月:2(上月2)+1(新出生1)
5月:3(上月3)+2(新出生2)
6月:5(上月5)+3(新出生3)
兔子總數=原有的+新生的,
那么原有的是多少呢,假設第x月,函數f(x)代表第x月兔子數量,那么原有的就是上個月兔子數量,也就是f(x-1),
那么新出生的是多少呢,題目一分析就知道兩個月之前有多少對兔子新出生的就是多少,也就是f(x-2)。
那么函數f(x)就知道怎么寫了
int f(x)//x是月份
{
? ? ?if(x < 0)
? ? {
? ? ? ? return 0;
? ? } ?
? ? else ?if(x==1 || x==2)
? ? ? {
? ? ? ?return 1;
? ? ? ?}
? ? ?else
? ? ?{
? ? ? ? ?return f(x-1)+f(x-2);
? ? ?}
}
?
反思:當年剛畢業那會其實對迭代不是很明白,也沒有靜下心來再去思考。
現在再拿過來思考,其實很簡單,如果題目換一下,根據思路很快也就能得出結果。
但是這種解決問題的思考方式反而很重要。
?
?
總結
以上是生活随笔為你收集整理的三年程序员之后的思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多线程共用全局变量可能存在的威胁
- 下一篇: Opencv3.4.1中csSaveIm