第二周编程题
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。
- 提醒:要小心跨日的换算。
- 时间限制:500ms内存限制:32000kb
输入格式:
一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。
输出格式:
一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。
输入样例:
933
输出样例:
133
Java代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int BJT,b1,b2,UCT;
BJT = in.nextInt();
b1=BJT/100;
b2=BJT%100;
if (b1>=8)
{
UCT=(b1-8)*100+b2;
}
else UCT=(24-(8-b1))*100+b2;
System.out.println(UCT);
}
}
2.信号报告(5分)
题目内容:
无线电台的RS制信号报告是由三两个部分组成的:
R(Readability) 信号可辨度即清晰度.
S(Strength) 信号强度即大小.
现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。如读到59,则输出:
Extremely strong signals, perfectly readable.
时间限制:500ms内存限制:32000kb
- 其中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
输入格式:
一个整数,信号报告。整数的十位部分表示可辨度,个位部分表示强度。输入的整数范围是[11,59]内有效的数字,这个范围外的数字不可能出现在测试数据中。
输出格式:
一句话,表示这个信号报告的意义。按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可辨度的文字,跟上句号。注意可辨度的句子的第一个字母是小写的。注意这里的标点符号都是英文的。
输入样例:
33
输出样例:
Weak signals, readable with considerable difficulty.
Java代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int mun,r,s;
String Strength = null;
String Readability = null;
mun = in.nextInt();
r=mun/10;
s=mun%10;
switch (s) {
case 1:
Strength="Faint signals, barely perceptible";
break;
case 2:
Strength="Very weak signals";
break;
case 3:
Strength="Weak signals";
break;
case 4:
Strength="Fair signals";
break;
case 5:
Strength="Fairly good signals";
break;
case 6:
Strength="Good signals";
break;
case 7:
Strength="Moderately strong signals";
break;
case 8:
Strength="Strong signals";
break;
case 9:
Strength="Extremely strong signals";
break;
}
switch (r) {
case 1:
Readability ="unreadable";
break;
case 2:
Readability ="barely readable, occasional words distinguishabl.";
break;
case 3:
Readability ="readable with considerable difficulty";
break;
case 4:
Readability ="readable with practically no difficulty";
break;
case 5:
Readability ="perfectly readable";
break;
}
System.out.println(Strength+", "+Readability+".");
}
}
总结
1.这里输出的是字符串,不能直接System.out.println();直接输入两端字符串不在一行里。
2.java里的字符串用String 定义,我的这个版本的eclipse里面定义的字符串必须要有初始化,否则就无法使用,一直报错。
3.switch-case里面的break是用来跳出switch的,如果有程序需求的话,break应该可以有很多用法。
♡ 如果你真的觉得很难,你坚持不了,那么你就要放弃;但是放弃后你就不要抱怨,你为什么得不到 ♡