[题目描述]:
输入:
输入一行一个正整数n(n≤30)。
输出:
输出一行一个浮点数,表示分数序列前n 项的和,精确到小数点后4位。
样例输入1
2
样例输出1
3.5000
来源/分类(难度系数:一星)
完整代码如下:
n=int(input())
p1=1
q1=2
x1=q1/p1
sum=x1
i=1
while i< n:
q1=q1+p1
p1=q1-p1
x1=q1/p1
sum+=x1
i+=1
print("{:.4f}".format(sum))
代码解释:
“n=int(input())
p1=1
q1=2
x1=q1/p1
sum=x1
i=1 : ”,让用户输入循环次数n,设定p,q的起始值p1=1,q1=2,令x1=q1/p1,总和设定为x1,i为循环密码子,起始值设为1。
“while i< n:
q1=q1+p1
p1=q1-p1
x1=q1/p1
sum+=x1
i+=1 ”,观查题目所给的分数序列可知:q2=q1+p1,p2=q1。为满足循环需要,令q1(新)=q2=q1(原)+p1(即将q1(原)和p1的和赋给q1(新)),p1(原)在此过程中未变,令p1(新)=p2=q1-p1(原)(已知q1(新)=q1(原)+p1,则q1(新)-p1=q1(原))。当i小于n(终止值)时,x1在此基础上不断进行叠代,sum和i随之不断叠加,直至i叠加至i=n(终止值),循环结束。
“print("{:.4f}".format(sum)) ”,打印最终结果,并保留四位小数。
运行效果展示: