1. 程式人生 > >零基礎學Java語言(第二週程式設計題)

零基礎學Java語言(第二週程式設計題)

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

思路:單是為了解這道題的話,與時分無關,所以我忽略了時分了。如果要取時分的值,用/,%來實現就好了

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        int bjt = in.nextInt();
        
        int utc;
        
        if(bjt >= 800)utc = bjt -800;
        else utc = (bjt - 800) + 2400;
        
        System.out.println(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.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        int num = in.nextInt();
        int num1 = num%10;
        int num2 = num/10;
        
        switch(num1) {
         case 1:
        	System.out.print("Faint signals, barely perceptible");
            break;
         case 2:
         	System.out.print("Very weak signals");
             break;
         case 3:
         	System.out.print("Weak signals");
             break;
         case 4:
         	System.out.print("Fair signals");
             break;
         case 5:
         	System.out.print("Fairly good signals");
             break;
         case 6:
         	System.out.print("Good signals");
             break;
         case 7:
         	System.out.print("Moderately strong signals");
             break;
         case 8:
         	System.out.print("Strong signals");
             break;
         case 9:
         	System.out.print("Extremely strong signals");
    	
        }
        switch(num2) {
        case 1:
       	 System.out.print(","+" "+"unreadable.");
            break;
        case 2:
       	 System.out.print(","+" "+"barely readable, occasional words distinguishable.");
            break;
        case 3:
       	 System.out.print(","+" "+"readable with considerable difficulty.");
            break;
        case 4:
       	 System.out.print(","+" "+"readable with practically no difficulty.");
            break;
        case 5:
       	 System.out.print(","+" "+"perfectly readable.");
       }
        

	}

}

btw上面那種方法好像是被eclipse嫌棄了,說是這方法已經過時了。所以打算用陣列再做一次,但我還沒學到,所以佔一個坑吧,這兩天填