按 x 的三个区间依次选择对应函数并保留三位小数。
OJ: noi_openjudge
题目 ID: ch0104-13
难度:入门
标签:数学条件判断浮点数python
日期: 2026-07-30 23:01
题意
按
思路
输入已保证范围,因此先判断 x < 5,再判断 x < 10,最后的 else 就是第三段。这样边界 5 和 10 自动落入后一段。
代码
Python代码
python
x = float(input())
if x < 5:
value = -x + 2.5
elif x < 10:
value = 2 - 1.5 * (x - 3) ** 2
else:
value = x / 2 - 1.5
print(f"{value:.3f}")C++代码
cpp
#include <cstdio>
int main(){
double x;
scanf("%lf",&x);
if ( x < 5){
printf("%0.3lf",-x+2.5);
}
else if( x < 10)
printf("%0.3lf",2-1.5*(x-3)*(x-3));
else
printf("%0.3lf",x/2-1.5);
return 0;
}复杂度
时间复杂度和额外空间复杂度均为
总结
有序区间的分段函数按上界依次判断,能减少重复范围条件。