我是R的新手,正在尝试确定第二个欧拉项目问题的答案。我能够使用以下代码创建斐波那契序列:
这给了我:l< - 50
y< - numeric(l)
y [1]< - 1
y [2]< - 2
for(i in 3:l){
+ y [i]< -y [i-1] + y [i-2]}
ÿ
[1] 1 2 3 5 8 13 21
[8] 34 55 89 144 233 377 610
[15] 987 1597 2584 4181 6765 10946
依旧......
解决此问题的下一步需要我添加此向量元素的所有偶数值。我知道这需要y %% 2 == 0来获取所有TRUE值,但是我还没有找到一种方法来总结这个向量中元素的值。尽管搜索谷歌和帮助文件,我还是找不到答案。
我问是否有人可以根据我以前用于确定Fibonacci序列的代码来解决这个问题。谢谢!
答案 0 :(得分:1)
你的代码中还有一个额外的'+',所以我在这里重新创建了这个。+ / p>
l <- 50
y <- numeric(l)
y[1] <- 1
y[2] <- 2
for(i in 3:l) {
y[i] <- y[i-1] + y[i-2] }
然后,基于TRUE值对子集向量,只需将条件放在方括号中:
evenY <- y[y %%2 == 0]
然后总结。在一行中:
sum(y[y %%2 == 0])