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