# 正负交错数列前n项和.py
# 1-1/2+2/3-3/5+4/8-5/13+...的前n项和,n由用户输入(n>0)
# 结果用str.format()方法保留小数点后6位数字输出。
# 输入一个正整数
# 输出前n项的和
n = int(input())
mole, den = 1, 1
mole1, den1 = 1, 1
count = 0
if n == 1:
print('{:.6f}'.format(mole / den))
else:
for i in range(2, n + 1):
num = (i - 1) / (mole + den)
mole, den = den, mole + den
# 这里设置a,b=c,d可以同步提取上一个的mole和den,避免混淆
if i % 2 == 0:
my_num = -1 * num
else:
my_num = 1 * num
count = count + my_num
total = count + mole1 / den1
print('{:.6f}'.format(total))
## 答案解析
# 分析:
# 分子规律为:1,1,2,3,4,5,...,除首个数字外是自然数
# 分母规律为:1,2,3,5,8,13...,除首个数字外,后面每个数是前面两个数的加和
# 符号规律:正负交替
# 项数:1,2,3,...n共n项
# previous, current = 1, 1
# 1 2 1 1 + 1
# previous, current = current, previous + current
# previous, current = 1, 2
# 2 3 2 1 + 2
# previous, current = current, previous + current
# previous, current = 2, 3
# 3 5 3 2 + 3
# previous, current = current, previous + current
# previous, current = 3, 5
# ......
n = int(input())
result = 1 # 首项的值,作为累加初值
sign = -1 # 符号,第二项是负值,
previous, current = 1, 1 # 分母数字的初值,从第二项开始符合这个规律
for i in range(1, n): # 从1到n-1遍历n-1次
previous, current = current, previous + current # 下一个数值是前面两个数的加和
result = result + sign * i / current # 注意分子是 i
sign = -sign # 改变正负号
print('{:.6f}'.format(result))
# sign*i就可以判断正负号了
# 重要知识!!!
# for i in range(1,1)会直接跳出循环,不执行for以内的操作。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本资源例题来源于python123.io网站中的课程《Python从入门到精通》,本人通过学习后,总结了学习思路,并在注释上写了详细解释。 《Python从入门到精通》是python123.io网站提供的一套Python编程课程,分为基础篇、进阶篇、实战篇三部分,适合Python编程初学者和进阶者。在基础篇中,该课程主要介绍了Python编程的基本概念、语法、函数、模块、文件操作等内容,涵盖了Python编程的入门基础;在进阶篇中,课程内容更加深入,主要讲解了Python编程中的高级特性,包括面向对象编程、多线程编程、网络编程、Web开发等;在实战篇中,课程通过一些具体的实例和项目,帮助学员将所学的Python知识应用到实际编程中。 此外,该课程还提供了在线编程环境,方便学员在网页端进行编程实践,并且还提供了大量的练习题和答案,方便学员巩固所学知识。该课程的讲解风格生动易懂,配合丰富的实例和练习,可以帮助学员快速掌握Python编程的基础知识和进阶技巧,是一份非常优秀的Python编程学习资源。
资源推荐
资源详情
资源评论
收起资源包目录
Python从入门到精通-第三章-简单循环.zip (14个子文件)
03-简单循环-05-求x的y次幂.py 277B
03-简单循环-14-百钱买百鸡A.py 1KB
03-简单循环-06-计算阶乘.py 540B
03-简单循环-12-十进制整数转二进制.py 1KB
03-简单循环-01-输出0-9的数字.py 202B
03-简单循环-02-用一行代码求和.py 307B
03-简单循环-04-2的n次方.py 294B
03-简单循环-09-奇数数列求和.py 702B
03-简单循环-08-数列求和.py 848B
03-简单循环-11-正负交错数列前n项和.py 2KB
03-简单循环-10-分数序列求和.py 1KB
03-简单循环-03-求数列前n项的平方和.py 540B
03-简单循环-07-阶乘求和.py 1004B
03-简单循环-13-统计学生平均成绩与及格人数.py 1013B
共 14 条
- 1
资源评论
Albert_Lsk
- 粉丝: 1w+
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript的访客预约系统设计源码
- 基于Vue和ECharts的工作租房数据可视化系统设计源码
- 1040g0cg310ravpiu6ibg5pg00tsipsln3ju2d0g 2
- 基于Python的SAR图像去噪CNN-NLM设计源码
- redhat6升级到redhat7,过程redhat6.x-> redhat6.10->rehat7.9 主版本最高版本
- 基于Django的流程引擎设计源码
- 基于Node.js的Express框架与MySQL的后台管理系统设计源码
- 基于Java的Flink流批一体数据处理快速集成开发框架设计源码
- FirstFilterOrderCompare
- Screenshot_2024-03-28-19-17-25-020_com.ss.android.lark.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功