问题
What modification is needed so function returns a sequence without the number 1 duplicated?
myfib<- function(){
fib.a<-1
fib.b<- 1
cat(fib.a,", ",fib.b,",",sep="")
repeat{
temp<- fib.a+fib.b
fib.a<-fib.b
fib.b<-temp
cat(fib.b,", ", sep="")
if(fib.b>150){
cat("BREAK NOW...")
break
}
}
}
instead of 1, 1, 2, 3, 4, 8, 13, 21, 34, 55, 89, 144, 233, BREAK NOW...
return 1, 2, 3, 4, 8, 13, 21, 34, 55, 89, 144, 233, BREAK NOW...
回答1:
Remove the first number from your cat
:
myfib <- function() {
fib.a <- 1
fib.b <- 1
cat(fib.b, ", ", sep="")
repeat {
temp <- fib.a + fib.b
fib.a <- fib.b
fib.b <- temp
cat(fib.b, ", ", sep="")
if(fib.b > 150) {
cat("BREAK NOW...")
break
}
}
}
Or change the initial values:
myfib <- function() {
fib.a <- 1
fib.b <- 2
cat(fib.a, ", ", fib.b, ", ", sep="")
repeat {
temp <- fib.a + fib.b
fib.a <- fib.b
fib.b <- temp
cat(fib.b, ", ", sep="")
if(fib.b > 150) {
cat("BREAK NOW...")
break
}
}
}
来源:https://stackoverflow.com/questions/46534924/fibonacci-function-from-book-the-book-of-r