【2024】求X到Y之间的整数和

Time Limit: 3 second
Memory Limit: 2 MB

【问题描述】

计算X到Y之间的整数和(要求用函数实现)。注意输入时X不一定小于Y,且X、Y不一定都是整数。

【输入】

两行,第一行为X,第二行为y。

【输出】

一行,x与y之间的整数和

【输入样例】

8.5
12.5

【输出样例】

    42

【题解】

这个处理有点麻烦。

先获取两个数的整数部分 用int(实数)这个函数来。这个函数不存在向上或向下取整,是直接除去小数部分。

然后确定累加的下界和上界。分别可以用这几个样例来确定划分标准

(约定x <=y )

x = -200.5  y =-199.5  -> -200

x= -200 y = -199 ->-399

x = 200.5 y = 201.5 ->201

x = 200 y= 201 -> 401

【代码】

#include <cstdio>

double x,y,z;
int ix,iy,ans = 0;

void input_data() //输入数据
{
    scanf("%lf",&x); //x <= y
    scanf("%lf",&y); //让x <= y成立
    if (x > y)
        {
            z = x;
            x = y;
            y = z;
        }
}

void get_ans() //开始处理上界和下界
{
        int f,t;
        ix = int(x);
        iy = int (y);
        double dd; //这里处理正数和负数的方法不同。
        if (x > 0)
            {
                dd = x-ix;
                if (dd < 0.00001)
                    f = ix;
                        else
                            f = ix +1;
            }
                else
                    {
                        f = ix;
                    }
        if (y > 0)
            {
                t = iy;
            }
                else
                    {
                        dd = iy-y;
                        if (dd < 0.00001)
                            t = iy;
                                else
                                    t = iy - 1;
                    }
        for( int i = f;i <= t;i++)
            ans+=i;
}

void output_ans()
{
    printf("%d",ans);
}

int main()
{
    input_data();
    get_ans();
    output_ans();
    return 0;
}


 

原文地址:https://www.cnblogs.com/AWCXV/p/7632474.html