如何使用for-loop计算前n项正整数分数序列1/2+…+n/(n+1)的和
用for循环计算目标分数序列和的实现方案
核心逻辑
序列通项为第i项的值为i/(i+1),i的取值范围是1到n(包含n),用for循环遍历每一项累加即可。
常见错误避坑
- 循环范围错误:循环起始值设为0、或者终止值小于n,会导致求和项数量不对
- 整数除法问题:大部分编程语言中如果分子分母都为整数类型,默认会执行截断取整,结果恒为0,需要先将其中一个操作数转为浮点类型再做除法
代码实现
Python 实现
def calc_fraction_sum(n): total = 0.0 # range为左闭右开规则,所以终止值设为n+1 for i in range(1, n + 1): total += i / (i + 1) return total # 测试示例 print(calc_fraction_sum(1)) # 输出0.5,对应1/2 print(calc_fraction_sum(3)) # 输出约1.9166666666666665,对应23/12
C 语言实现
#include <stdio.h> double calc_fraction_sum(int n) { double total = 0.0; for (int i = 1; i <= n; i++) { // 强制转换为double类型避免整数除法 total += (double)i / (i + 1); } return total; } int main() { printf("n=3时求和结果:%lf", calc_fraction_sum(3)); return 0; }
JavaScript 实现
function calcFractionSum(n) { let total = 0.0; for (let i = 1; i <= n; i++) { total += i / (i + 1); } return total; } // 测试示例 console.log(calcFractionSum(2)) // 输出约1.1666666666666665
内容的提问来源于stack exchange,提问作者adagnitio
相关产品推荐
相关产品推荐

