程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用重复函数找到小于 x 的最大斐波那契数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用重复函数找到小于 x 的最大斐波那契数?

开发过程中遇到使用重复函数找到小于 x 的最大斐波那契数的问题如何解决?下面主要结合日常开发的经验,给出你关于使用重复函数找到小于 x 的最大斐波那契数的解决方法建议,希望对你解决使用重复函数找到小于 x 的最大斐波那契数有所启发或帮助;

我是 R 编程的新手,我的 R 技能处于中级水平。我一直在尝试解决与重复功能相关的问题,但找不到任何解决方案。我想使用 repeat() 循环函数找到小于 5000 的最大斐波那契数,但我的代码给了我一个错误。我非常感谢任何与问题相关的帮助,并为我提供正确的问题代码。

fib<- c(0,1)

i<-2

repeat(fib[i]<5000){
  
  print(fib)
  
  fib<- c(fib,fib[i-1] + fib[i-2])
  
  i<- i+1
  
  if(i<5000){
    
    break
  
  }

}

解决方法

@H_262_10@

如果我们使用 while() 而不是 repeat(),我们可以编写一个循环来创建斐波那契数列,直到序列中最近创建的数的值大于 5,000。

首先我们将创建一个函数来计算斐波那契数列。

fib <- function(X){
     # check that x is an Integer
     if(!is.numeric(X)) stop("x must be an Integer")
     if(!(abs(x - round(X)) < .Machine$double.eps^0.5)) stop("x must be an Integer")
     if(x >= 2) return(fib(x-1) + fib(x-2))
     if(x == 1) return(1)
     if(x == 0) return(0)
     if(x < 0) return(NaN)
}

接下来,我们将编写一个 while() 循环来计算斐波那契数,直到最近创建的数大于 5,000。我们将数字存储在向量中并编写 while() 循环代码以与向量末尾的元素进行比较。

# initialize vector for Fibonacci sequence
fibSequence <- c(0,1)

# use while loop to calculate fibonacci numbers until one is greater than
# 5000
while(fibSequence[length(fibSequencE)] <= 5000){
     fibSequence <- c(fibSequence,fib(length(fibSequencE)))
}

此时向量 fibSequence 包含 1 个大于 5,000 的值。为了生成一个只有小于 5,000 的斐波那契数的结果向量,我们修剪了向量中的最后一个数字。

# trim last number
fibSequence <- fibSequence[-length(fibSequencE)]
fibSequence

...和输出:

> fibSequence
 [1]    0    1    1    2    3    5    8   13   21   34   55   89  144  233
[15]  377  610  987 1597 2584 4181
> 

大佬总结

以上是大佬教程为你收集整理的使用重复函数找到小于 x 的最大斐波那契数全部内容,希望文章能够帮你解决使用重复函数找到小于 x 的最大斐波那契数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:x