1558 - 分段函数0
时间限制 : 1 秒
内存限制 : 32 MB
编写程序,计算下列分段函数y=f(x)的值。
当 0<= x <2,y= -x+2.5;
当 2<= x <4,y=2-1.5(x-3)(x-3);
当 4<= x <6,y=x/2-1.5;
题目输入
输入第一行为整数m表示样例数,接下来有m行每行一个整数x。
题目输出
输出m行分别表示对应的y值,保留小数点后一位小数。
输入/输出样例
输入格式
2 1 3
输出格式
y=1.5 y=2.0
C语言解答
#include <stdio.h> int main () { double x,y=0,m; scanf("%lf",&m); while(m--) { scanf("%lf",&x); if(x>=0 && x<2) { y=2.5-x; } if(x>=2 && x<4) { y=2-1.5*(x-3)*(x-3); } if(x>=4 && x<6) { y=x/2-1.5; } printf("y=%.1f\n",y); } }
C++解答
#include<iostream> #include<iomanip> using namespace std; int x,m,i; float y; int main() { cin>>m; i=0; while(i<m) { cin>>x; if(x>=0&&x<2) y=-x+2.5; else if(x<4) y=2-1.5*(x-3)*(x-3); else if(x<6) y=x/2-1.5; cout<<"y="<<fixed<<setprecision(1)<<y<<endl; i++; } return 0; }
Java解答
import java.util.*; public class Main{ public static void main (String[] args) { Scanner in=new Scanner(System.in); double s; int n=in.nextInt(); for(int i=1;i<=n;i++){ double x=in.nextDouble(); if(x>=0&&x<2){ s=2.5-x; System.out.println ("y="+String.format("%.1f",s)); } if(x>=2&&x<4){ s=2-1.5*(x-3)*(x-3); System.out.println ("y="+String.format("%.1f",s)); } if(x>=4&&x<6){ s=x/2-1.5; System.out.println ("y="+String.format("%.1f",s)); } } } }