实验2-3-7 求平方与倒数序列的部分和 (15分)自我学习

该程序旨在计算从m到n(包含m和n)的每个正整数平方加其倒数的序列和。用户输入两个正整数m和n,程序会输出序列的精确和,保留六位小数。示例输入为5和10,输出为355.845635。

本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m​2​​+1/m+(m+1)​2​​+1/(m+1)+⋯+n​2​​+1/n。

输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。

输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。

输入样例:
5 10

输出样例:
sum = 355.845635

#include<stdio.h>
int main(){
int begin,end;
double sum =0;
scanf("%d %d",&begin,&end);
for(int i=begin;i<end+1;i++){
sum=sum+(i*i)+(1.0/i);
//这里要注意,把begin赋给i后,就不能用begin的值了,如果for循环定义begin为初始值的话,就不需要i,更方便。
}
printf("sum = %.6f",sum);
return 0;
}
在 Python 中,平方倒数序列部分,即对于两个正整数 `m` `n`(`m ≤ n`),计算序列 $m^2 + \frac{1}{m} + (m + 1)^2 + \frac{1}{m + 1}+ \cdots + n^2 + \frac{1}{n}$ ,有多种实现方法。 ### 方法一:使用 `while` 循环 ```python m, n = input().split() m, n = int(m), int(n) tot = 0 while m <= n: tot += m ** 2 tot += 1 / m m += 1 print("sum = %.6f" % tot) ``` 此方法先读取输入的 `m` `n`,然后使用 `while` 循环,在 `m` 小于等于 `n` 的条件下,不断累加 $m^2$ $\frac{1}{m}$ 的值,最后输出结果,精确到小数点后六位 [^1]。 ### 方法二:另一种 `while` 循环实现 ```python m,n=input().split() m=int(m) n=int(n) sum=0 while m<=n: sum=sum+m**2 m=1/m sum=sum+m m=1/m m+=1 print("sum = %.6f"%sum) ``` 该方法同样使用 `while` 循环,在循环体中先累加 $m^2$,将 `m` 转换为其倒数后累加,再将 `m` 转换回原值,最后 `m` 加 1,直到循环条件不满足,输出结果 [^2]。 ### 方法三:使用 `map` 列表推导式 ```python m,n=map(int,input().split()) s1=sum([x*x for x in range(m,n+1)]) s2=sum([1/x for x in range(m,n+1)]) print(&#39;sum = %.6f&#39; % (s1+s2)) ``` 此方法利用 `map` 函数将输入的字符串转换为整数,然后使用列表推导式别计算平方倒数,最后将两者相加并输出结果 [^3]。 ### 方法四:使用 `map` `while` 循环 ```python a, b = map(int, input().split()) sum = 0 while a <= b: sum += a ** 2 sum += 1 / a a += 1 print("sum = %.6f" % sum) ``` 该方法通过 `map` 函数读取输入的 `a` `b`,使用 `while` 循环累加平方倒数的值,最后输出结果 [^4]。 ### 方法五:使用 `map` `for` 循环 ```python m , n = map(int , input().split()) s = 0.0 if m > n: print("输入格式错误,请重新输入") else: for i in range(m , n + 1): s = s + pow(i , 2) + 1 / i print("sum = {:.6f}".format(s)) ``` 此方法先判断输入的 `m` 是否大于 `n`,若大于则提示输入错误,否则使用 `for` 循环累加平方倒数的值,最后输出结果 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值