该程序计算大于1000的前10个斐波纳契数的总和

时间:2019-07-14 11:44:31

标签: r printing fibonacci head

我想编写一个程序,仅向我显示前1000个大于1000的斐波那契数字。

我尝试使用头部,n = 10L,但没有成功。

len <- 30
fibvals <- numeric(len)
fibvals[1] <- 1
fibvals[2] <- 1
for (i in 3:len) { 
  fibvals[i] <- fibvals[i-1]+fibvals[i-2]
} 
for (i in 1:length(fibvals)){
  if(fibvals[i] > 1000){print(head(fibvals[i],n=10L))}
}

我希望前10个fibval​​s出现,但它会一直向我显示我的len = 30(所以多出4个)

1 个答案:

答案 0 :(得分:0)

使用while循环的另一种方法

#initialisation
m <- matrix( data = c(1,1), nrow = 2 )
n = 10
limit = 1000

#add new row to m,
# until m contains 10 (n) values above 1000 (limit)
while(length(m[ m > limit]) < n ){ 
  m <- rbind( m, m[length(m)] + m[length(m)-1] )
}
#print the values above the limit
print( m[m>limit] )