编写程序,计算序列1-2/3+3/5-4/7+5/9-6/11+...+(-1)n-1n/(2n-1)的前n 项之和,要求n 为从键盘上获取的10-20 之间的正整数。求和结果用输出函数查看,保留三位
时间: 2023-05-31 14:18:50 浏览: 162
### 回答1:
题目描述:编写程序,计算程序1-2/3+3/5-4/7+5/9-6/11+...+(-1)n-1n/(2n-1)的前n项之和,要求n为从键盘上获取的10-20之间的正整数。求和结果用输出函数查看,保留三位。
解答:首先,我们需要从键盘上获取输入的n的值,然后对输入的值进行校验,确保其在10到20之间,是正整数。接着,我们可以写一个循环,从1到n进行遍历,每次根据公式计算每一项的值,然后将它们累加起来,最终得到总和。最后,我们可以使用输出函数,将结果打印到屏幕上,保留三位小数。
以下是Python代码实现:
```python
n = int(input("请输入一个10-20之间的整数: "))
while not 10 <= n <= 20:
n = int(input("输入错误,请重新输入一个10-20之间的整数: "))
sum = 0
for i in range(1, n+1):
sum += (-1)**(i-1) * i / (2*i - 1)
print("前%d项和为: %.3f" % (n, sum))
```
### 回答2:
本题要求编写程序,计算序列1-2/3 3/5-4/7 5/9-6/11 ... (-1)n-1n/(2n-1)的前n项之和,其中n为10-20之间的正整数,并保留三位输出。
首先,我们需要理解这个序列的规律。可以发现,这个序列有两个部分,前一部分是:1-2/3+3/5-4/7+5/9-6/11+...,后一部分是:...-6/(4n-3) + 7/(4n - 1),两部分交替出现。因此,我们可以将其拆分为两个循环计算。
接下来,我们需要编写计算程序。首先通过输入函数获取n的数值,判断其是否符合要求,然后进入计算。首先定义sum=0,sign=1表示当前计算的是正数部分,num=1表示当前计算分数的分子,den=3表示当前计算分数的分母。然后进入两个for循环,第一个循环计算前一部分,第二个循环计算后一部分。循环内部先将当前分数加入sum中,然后更新num和den的值,sign的值则在循环内交替变更,即sign=-sign。最后输出保留三位小数的sum即可。
下面是代码示例(Python):
```python
n = int(input("请输入n(10-20之间正整数):"))
if n < 10 or n > 20:
print("输入错误,请输入10-20之间的正整数")
else:
sum = 0
num = 1
den = 3
sign = 1
for i in range(n):
sum += sign * num / den
num += 1
den += 2
sign = -sign
num = 4 * n - 3
den = 4 * n - 1
for i in range(n):
sum += sign * num / den
num -= 2
den -= 2
sign = -sign
print("计算结果为:%.3f" % sum)
```
注意,在Python中除法/默认返回的是浮点数,因此不需要手动转换类型即可进行计算。输出时使用格式化字符串%.3f表示保留三位小数即可。其他语言中需要注意整数之间进行除法操作可能会得到整数结果的情况,需要进行强制类型转换或使用浮点数进行计算。
### 回答3:
这道题目需要计算一个由分数构成的序列的前n项之和。我们可以先看一下这个序列的规律:
- 序列的第奇数项为正号,第偶数项为负号。
- 分数的分子为当前项的序号n减一,即n-1。
- 分数的分母为当前项的序号n乘以2再减去1,即2n-1。
根据这些规律,我们可以编写程序来计算这个序列的前n项之和。首先需要从键盘读取一个10到20之间的正整数,然后计算每一项的值并相加。最后输出结果即可。
以下是Python的实现代码:
n = int(input("请输入一个10到20之间的正整数:"))
total = 0
for i in range(1, n+1):
if i % 2 == 0:
total -= i/(2*i-1)
else:
total += i/(2*i-1)
print("前{}项之和为:{:.3f}".format(n, total))
在程序中,我们使用了一个for循环来遍历前n个项,根据当前项的序号和奇偶性计算出分数的值,然后根据正负号加减到总和中。最后使用format函数来控制输出结果的格式,保留三位小数。
阅读全文