我想编写一个程序,仅向我显示前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个fibvals出现,但它会一直向我显示我的len = 30(所以多出4个)
答案 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] )