• 程序功能正确,但处理负项的代码较为啰嗦,不简洁:

        若否 
            i := 1
            s := [a, b]
            当始 ( i < -n )
                c := a + b
                s := s + [c]
                a := b
                b := c
                i := i + 1
            当终
            x := s[-n]
            
            n := n + 1
            k := math.pow(-1,n)
            k := k * x
            返回 k 
        若终

    这段代码使用了正项递推公式,然后再通过正项计算负项对应的斐波那契数,从原理上是可行的,但为何不直接使用负项递推公式进行计算?

    另外,如果非要用上面的方法,在实现时,可以合并两个判断分支为一个分支,也就是说,对负项先算对应的正项,然后再求出负项对应的斐波那契额数。我们还可以进一步优化:不需要调用 math.pow(-1,n) 也能知道对应的斐波那契额数是正还是负。

    请按以上思路之一做优化和整理。

Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment