LV. 17
GP 400

RE:【問題】資訊工程研究所畢業 問 都問

14941 樓 婚姻已結 happy819tw
2 -
有人也覺得遞迴很不直覺嗎 ?  --  Part 2

我想大家對記憶體都有不錯的認知,而且也能用 stack 的模型去思考函式呼叫的行為

建立在這樣的基礎上,大家都很清楚遞迴的定義和行為


但真正令人感到困難且不直覺的點在於 :

遞迴從來都沒有簡單過,遞迴本來就是一種進階的技巧

使用遞迴寫出來的程式碼,往往比迴圈版本還要簡潔

簡潔到會讓人懷疑說 : 「什麼 ? 程式碼就這樣嗎 ?」

我們預設應該會看到更多的行為,但沒想到完整的程式碼如此簡潔

頓時沒辦法想通為什麼這個 case 可以用遞迴做到。這是我想表達的


另外是遞迴的函式呼叫通常很多次,我現在在哪一個 stack ? 資料跑到哪了 ?

尤其是 Indirect recursion,恐怕又更複雜了

這點也是我常常會亂掉的地方,所以才需要 GDB 這種工具的輔助


附上一張我剛練習完的 Quick Sort

我練習遞迴的方法,都是先找經典的程式碼來用 GDB 追蹤執行時期的狀況

一步一步的去看懂遞迴程式碼的奧妙,最後當然是自己實作一次

理解前後看一樣的程式碼,那種反差真的頗大的,有一種終於看懂了的感覺


文末,如果你覺得遞迴對你來說很直覺,恭喜你掌握一個寫程式的技巧

如果你和我一樣對遞迴的思維沒那麼強,不妨試試看我分享的學習方法 ?

Po 上來討論也好,我看到一定會回覆的。最近還蠻喜歡遞迴這個技巧
2
-
LV. 26
GP 69
14942 樓 歲月虛空 rex02019
0 -
想不到要找誰寫推薦信 成大要兩封= =
一封自己教授 另一ㄍ想不到要找誰寫= =
台科9/24開始報名喔
成大10/1號
ㄅ要忘記了

-------------------------------------------
乾 剛剛想到11月還有ic量測= =
回來會不會死掉 超怕...
忘記還有這檔事...
0
-
LV. 14
GP 4
14943 樓 廢物敗類窩囊廢麥可 parsons12342
0 -
這學期選修了一門企劃的課    是拿來討論專題的
其實去年就應該修了 可是跑去修資料結構
------------------------------------------------------------
重點是 老師叫我實作出 資料探勘之類的東西
感覺本來輕鬆過的東西 突然變得很硬....
0
-
LV. 20
GP 319
14944 樓 Mr.Origami a47108436306
0 -
用opencv開啟相機的方向怪怪的
我看yt都沒人遇到這問題
要怎麼解決



0
-
LV. 15
GP 0
14945 樓 火藥長岐 Z123457
0 -
問個 資工要學電子學嗎
目前是某公立學店高職高三
想問一下電子學是讀到夠應付考試就好還是要再更深入
現在就是在想要練程式題目或繼續深讀電子學
0
-
LV. 18
GP 103
14946 樓 多古尼爾拉斯 elvishao0331
0 -
我想問問要怎麼把VS整個搬家到D槽啊
當初年幼不懂事傻傻的丟進C槽
現在快爆炸了
0
-
LV. 17
GP 4
14947 樓 Leo ueuuop8591
0 -
請問各位,我從C#用Socket方式傳圖片,用手機APP進行接收為什麼圖片打不開
C#
String filename = "C:\\Users\\YK Chen\\Desktop\\EE.png";
            FileInfo fileInfo = new FileInfo(filename);
            byte[] buffer = new byte[fileInfo.Length];

            using(FileStream stream = fileInfo.OpenRead())
            {
                stream.Read(buffer, 0, buffer.Length);
            }

            byte[] datasize = new byte[4];

            datasize = BitConverter.GetBytes(buffer.Length);
            clientSocket.Send(datasize);
            clientSocket.Send(buffer, buffer.Length, SocketFlags.None);
            MessageBox.Show("Send!");

APP
File bmpFile = new File(path, filename);
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(bmpFile));// 寫出
byte[] data = new byte[1024*5];// 每次讀取的位元組數
int len= -1;
while ((len =bis.read(data) ) != -1) {
    os.write(data,0,len);
}
bis.close();
os.flush();
os.close();
0
-
LV. 23
GP 160
14948 樓 パパパスタ PAPAPASTA taiwan8575
0 -
訂的恐龍書到了
教授說這學期打算整本全飆完.... 真的怕!
但我英文真的不太好  
剛讀了一下前兩章,文字解釋的部分都看不太懂....
怎麼辦= =

0
-
LV. 26
GP 69
14950 樓 歲月虛空 rex02019
0 -
還沒五點肚子就餓了 = =
最近容易肚子餓 窩484豬ㄚ...

0
-
LV. 10
GP 93
14951 樓 濕滑@ゆりしぃ/KDHR推 determi7783
0 -
在看資訊之芽python的ptt的時候看不太懂這個地方

照第一張圖的說法,b2=b[:]後,更改b2的元素應該不會影響到b的元素
那為什麼第二張圖中,更改b2的元素後b的元素卻改變了啊?
0
-
LV. 7
GP 88
14952 樓 優文製造機 acxdncuer196
0 -
最近開始讀C++ Primer Plus

想問using namespace std 這句是什麼意思,看不太懂QQ

#include <iostream>

int main ()
{
using namespace std;
int carrots;
carrots = 25;
cout << "I have ";
cout << carrots;
cout << " carrots.";
cout << endl;
carrots = carrots - 1;
cout << "Crunch, crunch. NOw I have " << carrots << " carrots." <<endl;
return 0;
}

0
-
LV. 25
GP 289
14953 樓 廢物敗類窩囊廢 j2492104
0 -
刻介面用類似描圖的方法還蠻好用的ㄟ
雖然還是蠻簡陋 但是真好用 至少可以快速刻出版面、效果
0
-
LV. 7
GP 88
14954 樓 優文製造機 acxdncuer196
1 -


// sqrt.cpp -- use the sqrt() function

#include <iostream>
#include <cmath>

int main()
{
    using std::cout;
    using std::cin;
    using std::sqrt;
double area;
cout << "Enter the floor area, in square feet, of your home: ";
cin >> area;
double side;
side = sqrt(area);
cout << "That's the equivalent of a square " << side << " feet to the side.\n ";
cout << "How fascinating!\n ";
return 0;
}

為什麼第三行都會空一格
1
-
LV. 3
GP 22
14956 樓 殤玥(失蹤中) kiroha
0 -
資工跟資管有什麼差
工作好找嗎
現在AI跟5G相關的工作飽和了嗎
資工真的會很生硬嗎
0
-
LV. 17
GP 400
14957 樓 婚姻已結 happy819tw
0 -

請問網頁上這種給定一個 array,可以生成一個二元樹的程式該怎麼寫 ?

我只知道第一步是學習 JavaScript,能給我一個學習方向ㄇ
0
-
LV. 13
GP 108
14958 樓 Albert s18885
0 -
C語言
取一個文字檔案 input.txt,將其內所有的英文單字,轉換成小寫後,排序,再輸出至output.txt。
1.文字檔案中的所有英文單字皆為20個字元以內。
2.除以空白間隔單字外,並沒有其他標點符號。
3.轉換成小寫,需設計一副函式change()。
範例
input.txt
C is a general purpose imperative computer programming language supporting structured programming lexical variable scope and recursion while a static type system prevents many unintended operations
-
output.txt
a
a
and
and
application
applications
as
as
assembly
been
by
c
c
...
檔案要怎麼整個排序,我知道大概要用到strcmp但排整個檔案的該怎麼做
0
-
LV. 23
GP 160
14959 樓 パパパスタ PAPAPASTA taiwan8575
0 -
去刷LeetCode的第一題刷三個小時.....
Easy題目我就寫到快炸開 = =
我真的好廢

先重新把Vector跟Map跟Iterator的概念弄懂實作了一下後再去寫題目才比較有想法
雖然還是看了其他大神寫的Code才完成的.....
: (
0
-
LV. 16
GP 1
14960 樓 abc Rex1023
0 -
想了解資工跟資管的差別 以及畢業出路等等 今年高三 對於這兩個科系還不是很了解 希望有大大能幫我解惑 謝謝!
0
-
未登入的勇者,要加入 15349 樓的討論嗎?
板務人員:

7567 筆精華,今天 更新
一個月內新增 16
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】