九度OJ 题目1068:球的半径和体积
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:602 解决:198
题目描述:
输入球的中心点和球上某一点的坐标,计算球的半径和体积
输入:
球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1
输出:
输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数
样例输入:
0 0 0 1 1 1
样例输出:
1.732 21.766
提示:
为避免精度问题,PI值请使用arccos(-1)。
九度OJ 题目1069:查找学生信息
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:614 解决:161
题目描述:
输入N个学生的信息,然后进行查询。
输入:
输入的第一行为N,即学生的个数(N<=1000)
接下来的N行包括N个学生的信息,信息格式如下:
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:
02
03
01
04
输出:
输出M行,每行包括一个对应于查询的学生的信息。
如果没有对应的学生信息,则输出“No Answer!”
样例输入:
4
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
5
02
03
01
04
03
样例输出:
02 刘唐 男 23
03 张军 男 19
01 李江 男 21
04 王娜 女 19
03 张军 男 19
九度OJ 题目1070:今年的第几天?
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:304 解决:165
题目描述:
输入年、月、日,计算该天是本年的第几天。
输入:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出:
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
样例输入:
1990 9 20
2000 5 1
样例输出:
263
122
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:602 解决:198
题目描述:
输入球的中心点和球上某一点的坐标,计算球的半径和体积
输入:
球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1
输出:
输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数
样例输入:
0 0 0 1 1 1
样例输出:
1.732 21.766
提示:
为避免精度问题,PI值请使用arccos(-1)。
//清华2003:题目1068:球的半径和体积
//求给定序列的最大非空连续子序列和
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
#define pi acos(-1.0)
double SQ( double x ){
return x*x;
};
int main()
{
double radias, distanceSQ, volume;
double x0, x1, y0, y1, z0, z1;
//ifstream cin("THU_1068.txt");
while( cin >> x0 >> y0 >> z0 >> x1 >> y1 >> z1 ){
distanceSQ = SQ(x0-x1) + SQ(y0-y1) + SQ(z0-z1);
radias = sqrt( distanceSQ );
volume = pi * distanceSQ * radias * 4 / 3;
cout.setf(ios::fixed);
cout.precision(3);
cout << radias << " " << volume << endl;
}
//system("pause");
return 0;
}
九度OJ 题目1069:查找学生信息
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:614 解决:161
题目描述:
输入N个学生的信息,然后进行查询。
输入:
输入的第一行为N,即学生的个数(N<=1000)
接下来的N行包括N个学生的信息,信息格式如下:
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:
02
03
01
04
输出:
输出M行,每行包括一个对应于查询的学生的信息。
如果没有对应的学生信息,则输出“No Answer!”
样例输入:
4
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
5
02
03
01
04
03
样例输出:
02 刘唐 男 23
03 张军 男 19
01 李江 男 21
04 王娜 女 19
03 张军 男 19
//清华2003:题目1069:查找学生信息
//求给定序列的最大非空连续子序列和
//(0-9)->(48-57)
#include <fstream>
#include <iostream>
#include <string>
#include <cstring>
#include <memory.h>
using namespace std;
struct STUDENT{
string indexS;
string name;
string gender;
int age;
int index;
};
STUDENT s[1000];
void search( int x, int &length, int &result ){ //length为输入学生数
result = -1;
for( int i=0; i<length; i++ ){
if( s[i].index == x ){
result = i;
break;
}
}
};
int main()
{
int n, m, i, j, ask, r, l, temp; //r=result l=length
ifstream cin("THU_1069.txt");
cin >> n;
for( i=0; i<n; i++ ){
cin >> s[i].indexS >> s[i].name >> s[i].gender >> s[i].age;
l = s[i].indexS.length();
s[i].index = 0;
temp = 1;
for( j=l-1; j>=0; j-- ){
//cout << s[i].indexS[j] << endl;
s[i].index += temp * (s[i].indexS[j]-48);
temp *= 10;
}
//cout << s[i].index << endl;
}
cin >> m;
for( i=0; i<m; i++ ){
cin >> ask;
search( ask, n, r );
if( r == -1 )
cout << "No Answer!" << endl;
else
cout << s[r].indexS << " " << s[r].name << " "
<< s[r].gender << " " << s[r].age << endl;
}
system("pause");
return 0;
}
以上为做过字符转数字处理的方法 好处是只需输入1即可检索01号学生 而不强制要求输入01 以下为未经转数字处理的一般方法 也能AC 可见九度OJ的测试数据没有类似用1来检索的情况
//清华2003:题目1069:查找学生信息
//求给定序列的最大非空连续子序列和
//(0-9)->(48-57)
#include <fstream>
#include <iostream>
#include <string>
#include <cstring>
#include <memory.h>
using namespace std;
struct STUDENT{
string indexS;
string name;
string gender;
int age;
};
STUDENT s[1000];
void search( string x, int &length, int &result ){ //length为输入学生数
result = -1;
for( int i=0; i<length; i++ ){
if( s[i].indexS == x ){
result = i;
break;
}
}
};
int main()
{
int n, m, i, j, r, l, temp; //r=result l=length
string ask;
ifstream cin("THU_1069.txt");
cin >> n;
for( i=0; i<n; i++ )
cin >> s[i].indexS >> s[i].name >> s[i].gender >> s[i].age;
cin >> m;
for( i=0; i<m; i++ ){
cin >> ask;
search( ask, n, r );
if( r == -1 )
cout << "No Answer!" << endl;
else
cout << s[r].indexS << " " << s[r].name << " "
<< s[r].gender << " " << s[r].age << endl;
}
system("pause");
return 0;
}
九度OJ 题目1070:今年的第几天?
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:304 解决:165
题目描述:
输入年、月、日,计算该天是本年的第几天。
输入:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出:
输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
样例输入:
1990 9 20
2000 5 1
样例输出:
263
122
//清华2003:题目1070:今年的第几天?
//输入年、月、日,计算该天是本年的第几天。
//输入包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
#include <fstream>
#include <iostream>
using namespace std;
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int i, j, k;
int year, month, day;
ifstream cin("THU_1070.txt");
while( cin >> year >> month >> day ){
int extra=0, result=0;
if( month > 2 )
if( year%100 == 0 && year%400 == 0
|| year%100!=0 && year%4 == 0 )
extra = 1;
for( i=0; i<month-1; i++ )
result += m[i];
result += day;
result += extra;
cout << result << endl;
}
system("pause");
return 0;
}