您的位置:首页 > 其它

清华大学2001年复试上机题 第一套 解题报告

2012-03-05 20:04 316 查看
[b]九度OJ
题目1062:分段函数[/b]

时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:397 解决:223

题目描述:

编写程序,计算下列分段函数y=f(x)的值。

y=-x+2.5; 0<=x<2

y=2-1.5(x-3)(x-3); 2<=x<4

y=x/2-1.5; 4<=x<6

输入:

一个浮点数N

输出:

测试数据可能有多组,对于每一组数据,

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

样例输入:

1

样例输出:

1.500

//清华2001:题目1062:分段函数
//编写程序,计算下列分段函数y=f(x)的值。
//y=-x+2.5; 0<=x<2
//y=2-1.5(x-3)(x-3); 2<=x<4
//y=x/2-1.5; 4<=x<6
#include <iostream>
using namespace std;

int main()
{
int i, j, t;
float n;
while( cin >> n ){
cout.setf(ios::fixed);
cout.precision(3);
if( n<2 )
cout << 2.5-n << endl;
else if( n<4 )
cout << 2-1.5*(n-3)*(n-3) << endl;
else
cout << n/2-1.5 << endl;
}
//system("pause");
return 0;
}


[b]九度OJ
题目1063:整数和[/b]

时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:349 解决:244

题目描述:

编写程序,读入一个整数N。

若N为非负数,则计算N到2N之间的整数和;

若N为一个负数,则求2N到N之间的整数和

输入:

一个整数N,N的绝对值小于等于1000

输出:

测试数据可能有多组,对于每一组数据,

输出题目要求的值

样例输入:

1

-1

样例输出:

3

-3

//清华2001:题目1063:整数和
//编写程序,读入一个整数N (N<=1000)
//若N为非负数,则计算N到2N之间的整数和
//若N为一个负数,则求2N到N之间的整数和
#include <iostream>
using namespace std;

int main()
{
int i, j, t, n;
while( cin >> n ){
t = 0;
if( n<0 )
cout << 3*n*(-n+1)/2 << endl;
else
cout << 3*n*(n+1)/2 << endl;
}
//system("pause");
return 0;
}


[b]九度OJ
题目1064:反序数[/b]

时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:275 解决:219

题目描述:

设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)

求N的值

输入:

程序无任何输入数据

输出:

输出题目要求的四位数,如果结果有多组,则每组结果之间以回车隔开

//清华2001:题目1064:反序数
//设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)
//求N的值
#include <iostream>
using namespace std;

int reverse( int x ){	//求反序数 输入为4位数
int i, j, a[4], y=0;
for( i=0; i<4; i++ ){
a[i] = x % 10;
x /= 10;
}
for( i=0; i<4; i++ )
for( j=0; j<3-i; j++ )
a[i] *= 10;
for( i=0; i<4; i++ )
y += a[i];
return y;
};

int main()
{
int i, j, n, t;
//while( cin >> n )
//	cout << reverse(n);

for( i=1000; i<=1111; i++ )	//9*1112>1w 是5位数了
if( 9*i == reverse(i) )
cout << i;

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: