编写程序,输入n的值,求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数)。

描述

编写程序,输入n的值,求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数)。

输入

正整数n

输出

上述算式的求和结果(结果保留四位小数)

【样例输入】

10↙

【样例输出】

sum=0.6456

#include <stdio.h>
#include <stdlib.h>
int main()
{
  double n,sum=0,i,flag=1;
  scanf("%lf",&n);
  for(i=1;i<=n;i++)
  {
      sum+=flag*(1/i);
      flag*=-1;
  }
  printf("%.4lf",sum);
}

### 回答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函数来控制出结果的格保留小数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值