(1/(1+2))*(2/(2+3))*(3/(3+4)).....前n项相乘的积,n从键盘输入。
时间: 2023-10-30 21:07:33 浏览: 86
递归 1+2+3+4+...+n
这道题可以使用循环逐项相乘的方法求解,也可以使用数学归纳法进行证明。
方法一:循环相乘
算法流程:
1. 从键盘读入 n;
2. 初始化累乘变量 result 为 1;
3. 使用循环从 1 到 n,依次计算每一项的值,然后累乘到 result 中;
4. 输出结果 result。
代码实现:
n = int(input("请输入 n:"))
result = 1
for i in range(1, n+1):
result *= i/(i+1)
print("前 %d 项相乘的积为:%f" % (n, result))
方法二:数学归纳法证明
首先,当 n=1 时,原式为:
$$\frac{1}{2}$$
符合题目要求。
假设当 n=k 时,原式成立,即:
$$\prod_{i=1}^{k} \frac{i}{i+1} = \frac{1}{k+1}$$
则当 n=k+1 时,原式为:
$$\prod_{i=1}^{k+1} \frac{i}{i+1} = \left(\prod_{i=1}^{k} \frac{i}{i+1}\right) \cdot \frac{k+1}{k+2} = \frac{1}{k+1} \cdot \frac{k+1}{k+2} = \frac{1}{k+2}$$
因此,原式对于任意正整数 n 均成立。
综上,原式的值为:
$$\prod_{i=1}^{n} \frac{i}{i+1} = \frac{1}{n+1}$$
阅读全文