SICP 之斐波那契数
生活随笔
收集整理的這篇文章主要介紹了
SICP 之斐波那契数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這是斐波那契數(shù) 中用迭實現(xiàn)的
(define (fib n) (fib-iter 1 0 n))(define (fib-iter a b count)
(if(= count 0)
b
(fib-iter (+ a b) a (- count 1)))
)
下面關(guān)于它的應(yīng)用 換零錢方式的統(tǒng)計
(define (count-change amount)(cc amount 5)
)
(define (cc amount kinds-of-coins)
(cond((= amount 0) 1)
((or (< amount 0)(= kinds-of-coins 0)) 0)
(else (+ (cc amount (- kinds-of-coins 1))
(cc (- amount (first-denomination kinds-of-coins))
kinds-of-coins
)
))
)
)
(define (first-denomination kinds-of-coins)
(cond ((= kinds-of-coins 1) 1)
((= kinds-of-coins 2) 5)
((= kinds-of-coins 3) 10)
((= kinds-of-coins 4) 25)
((= kinds-of-coins 5) 50)
)
)
對于一種算法最關(guān)鍵的一點還是書上所說:如果a(為兌換的總額)為0的話,應(yīng)該算作是有一種換零錢的方式!
如果a小于0的話應(yīng)該算作有0中的換錢方式
如果n(為可以使用的兌換面額)為0的話,應(yīng)該算作是有0種換零錢的方式!
其實,最關(guān)鍵的是第一點,一直挺想不通的,為什么,當(dāng)兌換的面額為0的話,卻又有一種換零錢的方式! 如果,沒有這條的話,那么迭代是沒有結(jié)果的!
上面的運行結(jié)果是 “292” !
據(jù)個人猜測最后應(yīng)該是292 個1 相加的結(jié)果!
轉(zhuǎn)載于:https://www.cnblogs.com/neve/archive/2011/04/13/2015331.html
總結(jié)
以上是生活随笔為你收集整理的SICP 之斐波那契数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone如何关闭常去地点功能?
- 下一篇: iPhone如何追踪监控上网流量?