1
溫度轉換(5分)
題目内容:
寫一個将華氏溫度轉換成攝氏溫度的程式,轉換的公式是:
°F = (9/5)*°C + 32
其中C表示攝氏溫度,F表示華氏溫度。
程式的輸入是一個整數,表示華氏溫度。輸出對應的攝氏溫度,也是一個整數。
提示,為了把計算結果的浮點數轉換成整數,需要使用下面的表達式:
(int)x;
其中x是要轉換的那個浮點數。
注意:除了題目要求的輸出,不能輸出任何其他内容,比如輸入時的提示,輸出時的說明等等都不能。這道題目要求轉換後的數字,程式就隻能輸出這個數字,除此之外任何内容都不能輸出。
輸入格式:
一個整數。
輸出格式:
輸入樣例:
100
輸出樣例:
37
答案:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int F;
double num = 9/5.0;
Scanner in = new Scanner(System.in);
F = in.nextInt();
double C = ((F - 32)/num); //公式換算後所得
System.out.println((int)C);
}
}
2
時間換算(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
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
final int T = 800; //聲明一個時差用于BJT-時差 8小時 即 800
int input = 0;
input = in.nextInt();
int h = input/100; //聲明一個整型int h = 輸入除以100 這樣是為了在判斷中判斷百位與千位數字是在0-23之間 見if
int m = input%100; //聲明一個整型int m = 輸入取餘100 這樣是為了在判斷中判斷各位與十位數字是在0-59之間 見if
if(h>=0&&h<=23&&m>=0&&m<=59&&input>=800)
//如果 輸入值除以100後的值>=0&&這個值<=23 && 輸入值取餘100後的值>=0且<=59 因為時間如果為60或更大則不是時間表達 && 輸入值>=800 因為時差為800 8個小時 小于800會為負值
//在後面的else if中,輸出的值為(輸入值+2400-時差)即為有效時間
{
System.out.println(input-T);
}
else if(input<800&&input>=0)
{
System.out.println(input+2400-T);
}
}
}
3
信号報告(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.
import java.util.Scanner;
public class Main {
private static String Stringr; //聲明靜态私有字元串 Stringr
private static String Strings; //... Strings
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int input = in.nextInt();
int R = input/10; //同第二題方法
int S = input%10; //同第二題方法
// int valueRS = R*10+S; 已注釋,之前的方法未達成遺留
if(R>=1&&R<=5&&S>=1&&S<=9)//如果輸入的數值在11-59之間 //if(R>=1&&R<=5&&S>=1&&S<=9&&input>=11&&input<=59) 之後檢測input>=11&&input<=59是多餘的
{ switch(S) //利用switch case 把S也就是各位數的值 指派對應的String語句 { case 1: Strings = "Faint signals, barely perceptible"; break; case 2: Strings = "Very weak signals"; break; case 3: Strings = "Weak signals"; break; case 4: Strings = "Fair signals"; break; case 5: Strings = "Fairly good signals"; break; case 6: Strings = "Good signals"; break; case 7: Strings = "Moderately strong signals"; break; case 8: Strings = "Strong signals"; break; case 9: Strings = "Extremely strong signals"; } switch(R) //同上,利用switch case 指派十位數字的R 對應的String語句 { case 1: Stringr = "unreadable"; break; case 2: Stringr = "b;arely readable, occasional words distinguishable"; break; case 3: Stringr = "readable with considerable difficulty"; break; case 4: Stringr = "readable with practically no difficulty"; break; case 5: Stringr = "perfectly readable"; } System.out.println(Strings+", "+Stringr+"."); //輸入完成後列印被指派的 Strings 與 Stringr } } }
将程式設計看作是一門藝術,而不單單是個技術。
敲打的英文字元是我的黑白琴鍵,
思維圖紙畫出的是我編寫的五線譜。
當美妙的華章響起,現實通往二進制的大門即将被打開。