-2
proc Fibonacci {x} {
    set n(0) 0; set n(1) 1
    set i 2
    while {$i <= $x} {
        set n($i) [expr n($i-2) + n($i-1)]
        incr i
    }
    return $n($i)
}
set y [Fibonacci 10]
puts "$y"

上記のプログラムのコンパイル中に以下のエラーが発生します。私を訂正してください

4

2 に答える 2

1

コードに基づく実用的なソリューションは次のとおりです。

proc Fibonacci {x} {
    set n(0) 0; set n(1) 1
    set i 2 
    while {$i <= $x} {
        set fiboMinus1 $n([expr {$i - 1}])
        set fiboMinus2 $n([expr {$i - 2}])
        set n($i) [expr {$fiboMinus1 + $fiboMinus2}]
        incr i
    }   
    return $n($x)
}   

set y [Fibonacci 10] 
puts "$y"
于 2013-08-07T01:34:48.243 に答える