Time Limit: 3 second
Memory Limit: 2 MB
【问题描述】
计算X到Y之间的整数和(要求用函数实现)。注意输入时X不一定小于Y,且X、Y不一定都是整数。【输入】
两行,第一行为X,第二行为y。
【输出】
一行,x与y之间的整数和
【输入样例】
8.512.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; }