HDU 10453 分段函数
| 分段函数 |
| Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB |
| Total submit users: 328, Accepted users: 261 |
| Problem 10453 : No special judgement |
| Problem description |
| 有一函数
x (x<1) y= 2x-1 (1<=x<10) 3x-11 (x>=10) 编写程序根据x的值输出y的值。 |
| Input |
| 输入将包含若干组数据,第一行为一个整数n,代表下面共有n组数据。接下来的每一行为一个x(共n行),代表一组数据。 |
| Output |
| 对于每组输入的数据x,输出其y值,每组数据输出一行。计算结果如果为小数,小数点后保留1位有效数字,四舍五入。 |
| Sample Input |
2 5 30 |
| Sample Output |
9 79 |
#include<iostream>
#include<stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
int n;
double x;
cin>>n;
while(n--)
{
cin>>x;
if(x<1)
{
cout<<x<<endl;
}
else if(x>=10)
{
cout<<(3*x-11)<<endl;
}
else
{
cout<<(2*x-1)<<endl;
}
}
return 0;
}
理论上应该是这样的:
#include<iostream>
#include<stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
int n;
double x;
cin>>n;
while(n--)
{
cin>>x;
if(x<1)
{
if((int)x==x)
cout<<fixed<<setprecision(0)<<x<<endl;
else
cout<<fixed<<setprecision(1)<<x<<endl;
}
else if(x>=10)
{
if((int)x==x)
cout<<fixed<<setprecision(0)<<(3*x-11)<<endl;
else
cout<<fixed<<setprecision(1)<<(3*x-11)<<endl;
}
else
{
if((int)x==x)
cout<<fixed<<setprecision(0)<<(2*x-1)<<endl;
else
cout<<fixed<<setprecision(1)<<(2*x-1)<<endl;
}
}
system("pause");
return 0;
}
越努力,越幸运

浙公网安备 33010602011771号