首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PTA | 习题2-3 求平方与倒数序列的部分和 (15分)

PTA | 习题2-3 求平方与倒数序列的部分和 (15分)

作者头像
C you again
发布2021-06-09 23:59:01
发布2021-06-09 23:59:01
1.5K1
举报
文章被收录于专栏:IT技术圈IT技术圈

一、题目描述

本题要求对两个正整数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

二、思路分析

博主刚看到题目,感觉有些不理解。多读了几遍,发现一点都没有难度,就是把公式:

{m^2}

+1/m+

{(m+1)^2}

+1/(m+1)+⋯+

{n^2}

+1/n 转化成对应的代码罢了。转化代码如下:

代码语言:javascript
复制
double sum=0.0;
int i;
for(i=m; i<=n; i++)
{
    sum+=pow(i,2)+1.0/i;
}

其中,pow()为次幂函数,具体解释和使用请看这篇文章:《练习2-6 计算物体自由下落的距离 (5分)》

需要注意的是,公式中的 m 作为分母,如果在题目中没有说明 m 和 n 是正整数的话,就得保证 m,n 不为0。就像下面这样:

代码语言:javascript
复制
double sum=0.0;
int i;
for(i=m; i<=n; i++)
{
    if(i != 0)
    {
        sum+=pow(i,2)+1.0/i;
    }

}

当然本题中明确说明 m,n 是正整数,就不需要考虑分母可能会出现0的情况了。

三、参考代码

根据以上分析,给出参考代码如下:

代码语言:javascript
复制
#include<stdio.h>
#include <math.h>
int main()
{
    int m,n;
    scanf("%d %d",&m,&n);
    double sum=0.0;
    int i;
    for(i=m; i<=n; i++)
    {
        sum+=pow(i,2)+1.0/i;
    }
    printf("sum = %.6lf\n",sum);
    return 0;
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C you again 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、题目描述
  • 二、思路分析
  • 三、参考代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档