如何编写R函数计算入参N对应的前N个正整数的和
现有代码问题说明
- 循环范围错误:传入的
a是单个整数N,for (i in a)只会执行1次,没有覆盖1到N的所有正整数 - 求和逻辑错误:
V <- a[1]+a仅执行了N+N的计算,没有完成逐个累加的操作 - 无显式返回逻辑:不符合将结果存储在变量V中返回的要求
修正后代码
循环实现(匹配你原本想用循环的思路)
sum_whole <- function(a){ V <- 0 for (i in 1:a){ V <- V + i } return(V) }
公式实现(性能更高,无需循环)
前N个正整数的和符合等差数列求和规则,可直接用公式计算:
sum_whole <- function(a){ V <- a*(a+1)/2 return(V) }
运行验证
调用你给出的测试用例,输出结果如下:
sum_whole(20)返回210sum_whole(32)返回528sum_whole(4)返回10
内容的提问来源于stack exchange,提问作者Richard Belmont
相关产品推荐
相关产品推荐

