華為機試-取近似值

qq_35398517發表於2020-12-11

問題描述

寫出一個程式,接受一個正浮點數值,輸出該數值的近似整數值。如果小數點後數值大於等於5,向上取整;小於5,則向下取整。

輸入描述:
輸入一個正浮點數值

輸出描述:
輸出該數值的近似整數值

示例

示例1

輸入 5.5
輸出 6

解決思路

分析

問題的關鍵在於 比對 輸入的double數小數部分 與 0.5 的大小

方法

  1. 直接取double的整數部分,與輸入的double數字相減,然後與0.5比對大小

  2. double數字+0.5,直接取整

    實現的關鍵:依賴java的型別轉換,double轉int直接抹去小數部分

程式碼實現

public class Round {
    // 思路1的程式碼實現
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        //輸入引數
        double a = in.nextDouble();
        //取整數部分
        int b = (int)a;
        //判斷
        if((a - b) >= 0.5){
            b=(int)(a + 0.5);
        }
        System.out.println(b);
    }
}

小夥伴如果想測試的話,可以直接到牛客網這個連結做測試

華為機試-牛客網

相關文章