1051:分段函数

1051:分段函数

时间限制: 1000 ms    内存限制: 65536 KB

【题目描述】

编写程序,计算下列分段函数y=f(x)的值。结果保留到小数点后三位。

y=−x+2.5;0≤x<5

y=2−1.5(x−3)(x−3);5≤x<10

y=x÷2−1.5;10≤x<20

【输入】

一个浮点数N(0≤N<20)。

【输出】

输出 N 对应的分段函数值: f(N)。结果保留到小数点后三位。

【输入样例】

1.0

【输出样例】

1.500

说明:

主要考查switch多分支结构。

思路分析:

可能有部分小学生不理解分段函数y=f(x)的意思,但认真分析一下,其实就是根据x的取值求出y的值,而x的值不同时,求出y值的公式也有所不同。

其中本题x的取值范围有三种,根据输入的值(题目中输入的是N),求出f(N)的值(其实就是y的值)。而N的值(公式中x的值)有三种情况,此时判断N的值,根据N值的范围代入相应的公式中,从而求得f(N)的值。

例如N=3,即N的值在第一条公式的范围内,所以用第一条公式来求得f(N)的值。

数据类型:从公式和输入中可以得知,数据存在浮点数,所以使用浮点类型。如以后的题目没有特别指出使用何种浮点型,在题解中将默认选择double类型。

本题如果用if语句解决自然简单方便,代码中将分别展示if和switch方法。让初学switch的同学可以更深入地了解switch的使用。

关于switch的方法,可以参考上一题的题解《【题解】1050:骑车与走路》。不过本题将使用switch的另一种技巧。

求解过程:

声明一个double类型变量N。

输入一个数给变量N。

根据N的值选择相应的公式求得f(N)的值。

输出f(N)的值,并保留到小数点后三位。

参考代码 - C++:

// 方法1
// N的值有3个范围,当N/5时,刚好第1个范围所有数除以5的结果都为0
// 第2个范围所有数除以5的结果都为1
// 而第3个范围可以放在default中

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
   
    double N
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值