第二周编程题
1时间换算(5分)
题目内容:
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。
你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
提醒:要小心跨日的换算。
输入格式:
一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。
输出格式:
一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。
输入样例:
933
输出样例:
133
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Timeconversion {
public static void main(String[] args) {
int UTC = 0 ;
int BJT ;
Scanner input = new Scanner(System.in);
BJT = input.nextInt();
if (BJT >= 0 && BJT <= 2359) {
//四位数
if ( BJT >1000)
{
if ( BJT % 100 >= 8) {
UTC = BJT - 8 ;
}else {
UTC =((BJT/100 ) * 100 ) + (60 + ((BJT%100) - 8));
}
}
//三位数
else if ( BJT < 1000 && BJT >= 0 )
{
if ( BJT / 100 != 0)
{
if ( BJT % 100 >= 8 )
{
UTC = BJT -8;
}
else if (BJT % 100 < 8)
{
//(923-((int)(1000.0/923)*100)),(BJT - ((int)(1000.0 / BJT) * 100)) %100
UTC = (BJT/100-1)*100 + 60 + BJT%100 -8 ;
}
}
else if ( BJT / 100 == 0)
{
if ( BJT >= 8 )
{
UTC = BJT - 8;
}
else if ( BJT < 8 )
{
UTC = 2300 + (60 + (BJT-8));
}
}
}
}
if ( UTC >= 1000)
{
System.out.println(UTC);
}
else if (UTC < 1000 && UTC >= 100)
{
System.out.println("0" + UTC);
}
else if ( UTC < 100 && UTC>= 10 )
{
System.out.println("00" + UTC);
}
else
{
System.out.println("000" + UTC);
}
}
}
2信号报告(5分)
题目内容:
无线电台的RS制信号报告是由三两个部分组成的:
R(Readability) 信号可辨度即清晰度.
S(Strength) 信号强度即大小.
其中R位于报告第一位,共分5级,用1—5数字表示.
1---Unreadable
2---Barely readable, occasional words distinguishable
3---Readable with considerable difficulty
4---Readable with practically no difficulty
5---Perfectly readable
报告第二位是S,共分九个级别,用1—9中的一位数字表示
1---Faint signals, barely perceptible
2---Very weak signals
3---Weak signals
4---Fair signals
5---Fairly good signals
6---Good signals
7---Moderately strong signals
8---Strong signals
9---Extremely strong signals
现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。如读到59,则输出:
Extremely strong signals, perfectly readable.
输入格式:
一个整数,信号报告。整数的十位部分表示可辨度,个位部分表示强度。输入的整数范围是[11,59]内有效的数字,这个范围外的数字不可能出现在测试数据中。
输出格式:
一句话,表示这个信号报告的意义。按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可辨度的文字,跟上句号。注意可辨度的句子的第一个字母是小写的。注意这里的标点符号都是英文的。
输入样例:
33
输出样例:
Weak signals, readable with considerable difficulty.
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class SignalRepot {
public static void main(String[] args) {
int R;
int S;
String Rout = "";
String Sout = "";
int num ;
Scanner input = new Scanner(System.in);
num = input.nextInt();
if (num>10&&num<60){
R = num/10 ;
switch ( R )
{
case 1: Rout = "unreadable";break;
case 2: Rout = "barely readable, occasional words distinguishable";break;
case 3: Rout = "readable with considerable difficulty";break;
case 4: Rout = "readable with practically no difficulty";break;
case 5: Rout = "perfectly readable";break;
}
S = num % 10 ;
switch ( S )
{
case 1: Sout = "Faint signals, barely perceptible";break;
case 2: Sout = "Very weak signals";break;
case 3: Sout = "Weak signals";break;
case 4: Sout = "Fair signals";break;
case 5: Sout = "Fairly good signals";break;
case 6: Sout = "Good signals";break;
case 7: Sout = "Moderately strong signals";break;
case 8: Sout = "Strong signals";break;
case 9: Sout = "Extremely strong signals";break;
}
System.out.println(Sout+", "+Rout);
}
}
}
0 条评论