Re: [心得] 用 bash 算費氏數列,就當了

作者: rickieyang (Rickie Yang)   2016-04-24 23:17:54
※ 引述《Gold740716 (項為之強)》之銘言:
: febo(){
: i=$1
: (( j = i-1 , k = i-2 ))
:
: if (( i <= 1 ))
: then
: echo 1
: else
: echo $(expr `febo $j` + `febo $k` )
: fi
: }
:
:
: 邏輯問題是 febo 1 和 febo 0 都回傳 1 ,
: 所以 febo 2 = 2 ,也就是我第 0 項變成 1 ;而不是 0 。
: 我想知道 fork 炸彈在哪,小弟功力不足。
:
:
作者: rickieyang (Rickie Yang)   2016-04-24 23:37:00
其實我也不知道 (( )) 跟 $() 是不是只有 bash 能用?
作者: hijkxyzuw (i,j,k) ×(x,y,z)   2016-04-25 00:53:00
我翻了 log 只算到 9……用ulimit 玩, 到 15 就不想等了
作者: rickieyang (Rickie Yang)   2016-04-25 00:55:00
樓上原 po 忘了換帳號?15 就要 fork 三千多次了...
作者: HamalAri (哈馬‧阿里)   2016-04-25 01:32:00
遞迴的話,bash 20 C 45 都是 30 秒內出的來
作者: Gold740716 (項為之強)   2016-04-25 08:57:00
忘了換帳號 冏
作者: lantw44 (#######################)   2016-04-25 22:19:00
(( )) 是 bash 語法,$() 是標準 shell 的語法標準 shell 也沒有支援陣列其實不一定要用 (( )) 或 expr,有 $(( )) 可以用剛才測試 ksh 和 zsh 好像也有支援 (( )) 和 陣列

Links booklink

Contact Us: admin [ a t ] ucptt.com