[問題] 大數問題(費氏數列計算) (似乎已解決?)

作者: ddchris (克里斯)   2017-07-18 17:49:33
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Visual studio 2017
問題(Question):
當測試值小時執行都蠻正常
但是當 N>650(第650項) 或 W>450(陣列數字位數)時會出現執行錯誤訊息(不知為何?)
錯誤結果(Wrong Output):
發生未處理的例外狀況: 0xC00000FD: Stack overflow (參數: 0x00000000,
0x01202000)。
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/KqN9Qq
補充說明(Supplement):
想法是利用二維矩陣紀錄每一個費氏數列的值(由左而右)
最後答案再由右而左反著印出來
自學C++的程式超新手
還請各位大神鞭小力一點... 感謝!!
作者: Zero0910 (みくに最高≧▽≦)   2017-07-18 17:57:00
stack空間不夠你放這麼大的陣列啦 請用new/delete去配置記憶體空間置底十三誡第10點
作者: Yshuan (倚絃)   2017-07-18 19:37:00
你只需要N-2跟N-1去算第N項 從0到N-3的空間根本不用
作者: remizu (remizu)   2017-07-18 19:41:00
bad_alloc exception是new失敗所產生的 通常是要太多記憶體 改用Y大的方法就可以解決
作者: moebear (萌熊)   2017-07-18 19:43:00
我建議做二維動態陣列new一次 然後把它截成二維的樣子https://goo.gl/WSbTH2 像是這個(三)前面的丟掉會算太久吧
作者: Littlechozy (キミに100%)   2017-07-18 21:09:00
F20000不超過6000位,如果用1個int表示10000,一個數要1200個int,以記憶體有500MB來看,可以算看看

Links booklink

Contact Us: admin [ a t ] ucptt.com