问题描述
我的任务是创建一个函数 fb(n,m),它以整数向量 n 和 m 作为输入,为每个元素 i 遍历从 n[i] 到 m[i] 的所有整数,返回一个向量对于 n 和 m 之间的每个数字,它包含由 fizzbuzz(n) 定义的字符串“Fizz/Buzz/FizzBuzz”或数字本身。内置了两条错误消息 - 一条如果向量 (n,m) 的长度不同,一条如果 n[i]
我的代码广泛适用,直到我尝试处理 fb(10,c(11,15)) 或 fb(c(9,12),13)) 之类的东西,它只返回一个值以及以下错误:
警告信息:
1:在 n:m 中:数值表达式有 2 个元素:仅第一个使用
2:在 n:m 中:数值表达式有 2 个元素:仅第一个使用
如何更改我的代码以使其可以处理提到的向量?
fizz <- function(n) {
vec <- n
ifelse(vec %% 3 == 0,"Fizz","")
}
buzz <- function(n) {
vec <- n
ifelse(vec %% 5 == 0,"Buzz","")
}
fizzbuzz <- function(n) {
vec <- n
ifelse(n %% 15 == 0,"Fizzbuzz",ifelse(n %% 5 == 0,buzz(n),ifelse(n %% 3 == 0,fizz(n),"")))
}
fbr <- function(n,m) {
vec <- n:nrow(m)
if(length(n) != length(m)){
stop("vectors are not the same length")
} else if (n:m <= m) {
stop("n is less than m")
}
ifelse(vec %% 15 == 0,fizzbuzz(vec),ifelse(vec %% 5 == 0,buzz(vec),ifelse(vec %% 3 == 0,fizz(vec),vec)))
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)