gpt4 book ai didi

loops - 在 lisp 中求和斐波那契数

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:37 25 4
gpt4 key购买 nike

我刚刚开始学习 Lisp,并且正在解决一些 Project Euler 问题。我被困在你将偶数斐波那契数加起来低于最大数的那个上。我尝试过的事情如下。我读过 this post但我仍然不确定为什么我的两种方法都不起作用!

CL-USER> (defun sum-even-fibs (max)
(do ((curr 0 next)
(next 1 (+ curr next))
(sum 0 (if (evenp curr) (+ sum curr))))
((> max curr) sum)))
SUM-EVEN-FIBS
CL-USER> (sum-even-fibs 10)
0


CL-USER> (defun sum-even-fibs (max)
(let ((sum 0))
(do ((curr 0 next)
(next 1 (+ curr next)))
((> max curr))
(if (evenp curr)
(setq sum (+ sum curr))))
(format t "~d" sum)))
SUM-EVEN-FIBS
CL-USER> (sum-even-fibs 10)
0
NIL

最佳答案

arbautjc 答案的稍微“更好”的版本:

(loop for a = 0 then b and b = 1 then (+ a b) 
while (< a 4000000)
when (evenp a) sum a)

关于loops - 在 lisp 中求和斐波那契数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com