如何在 Golang 程式中找到三個數字中的最大值?


在本教程中,我們將瞭解如何在 Golang 中找到給定數字中的最大值。本教程將介紹兩種實現相同功能的方法。

解釋

Suppose we have three numbers 33, 76, and 47 so we can observe that
76 > 33
76 > 47
So our Golang code should print 76 as the largest number.

在同一函式中定義操作

演算法

  • 步驟 1 - 宣告 number1、number2、number3 和 largest 變數,資料型別為 int32。

  • 步驟 2 - 從使用者那裡獲取 number1、number2 和 number3 的輸入。

  • 步驟 3 - 在函式內找到三個數字中的最大值

  • 步驟 4 - 列印結果。

時間複雜度

O(1) - 時間複雜度為常數,因為無論輸入是什麼,程式都會花費相同的時間

空間複雜度

O(1) - 變數在程式中是靜態的,因此空間複雜度也是常數

示例 1

在這個例子中,我們將找到函式內三個數字中的最大值。

package main // fmt package provides the function to print anything import ( "fmt" ) func main() { // declaring the variables to store number1, number2 // number3, and largest of type int32 using var keyword var number1, number2, number3, largest int32 fmt.Println("Program to find the largest number among three numbers within the function.") // initializing the number1 number1 = 50 // initializing the number2 number2 = 75 // initializing the number3 number3 = 45 // checking for all the numbers that which is greater than or equal to other // two numbers and then storing that number in Largest variable if number1 >= number2 && number1 >= number3 { largest = number1 } else if number2 >= number1 && number2 >= number3 { largest = number2 } else { largest = number3 } // Printing the largest number among three numbers fmt.Println("Number 1 =", number1, "\nNumber 2=", number2, "\nNumber 3 =", number3, "\nLargest Number =", largest) }

輸出

Program to find the largest number among three numbers within the function.
Number 1 = 50
Number 2= 75
Number 3 = 45
Largest Number = 75

程式碼描述

  • var number1, number2, number3, largest int32 - 在這行程式碼中,我們聲明瞭三個變數,用於儲存來自使用者的數字,以及一個 largest 變數,用於儲存最大數字的值。

  • if number1 >= number2 && number1 >= number3 {} - 此 if 條件檢查 number1 是否是三個數字中最大的。

  • else if number2 >= number1 && number2 >= number3 {} - 此 else if 條件檢查 number2 是否是三個數字中最大的。

  • else { largest = number3 } - 如果以上兩個條件都不匹配,則 number3 是最大的。

  • fmt.Println("The largest number among", number1, number2, "and", number3, "is", largest) - 列印最大數字。

在單獨的函式中定義操作

演算法

  • 步驟 1 - 宣告 number1、number2、number3 和 largest 變數,資料型別為 int32。

  • 步驟 2 - 從使用者那裡獲取 number1、number2 和 number3 的輸入。

  • 步驟 3 - 使用 number1、number2 和 number3 作為引數呼叫函式,並將 largestNumber(number1, number2, number3 int32) 函式返回的最大數字儲存起來。

  • 步驟 4 - 列印最大數字

示例 2

在這個例子中,我們將透過定義單獨的函式來找到三個數字中的最大值。

package main // fmt package provides the function to print anything import ( "fmt" ) // This function to find the largest number among three numbers in the function parameter func largestNumber(number1, number2, number3 int32) int32 { // declaring the local largest variable which will store // the value of the largest number among three numbers var localLargest int32 // checking for all the numbers that which is greater than or equal to other // two numbers and then storing that number in localLargest variable if number1 >= number2 && number1 >= number3 { localLargest = number1 } else if number2 >= number1 && number2 >= number3 { localLargest = number2 } else { localLargest = number3 } return localLargest } func main() { // declaring the variables to store number1, number2 // number3, and largest of type int32 using var keyword var number1, number2, number3, largest int32 fmt.Println("Program to find the largest number among three numbers by using the separate function.") // scanning the value first number from the user fmt.Println("Enter the first number:") fmt.Scanln(&number1) // scanning the value of the second number from the user fmt.Println("Enter the second number:") fmt.Scanln(&number2) // scanning the value of the third number from the user fmt.Println("Enter the third number:") fmt.Scanln(&number3) // finding the largest number among three numbers by calling the largestNumber() function largest = largestNumber(number1, number2, number3) // Printing the largest number among three numbers fmt.Println("The largest number among", number1, number2, "and", number3, "is", largest) }

輸出

Program to find the largest number among three numbers by using the separate function.
Enter the first number:
43
Enter the second number:
89
Enter the third number:
97
The largest number among 43 89 and 97 is 97

程式碼描述

  • var number1, number2, number3, largest int32 - 在這行程式碼中,我們聲明瞭三個變數,用於儲存來自使用者的數字,以及一個 largest 變數,用於儲存最大數字的值。

  • fmt.Scanln(&number1) - 從使用者那裡獲取 number1 的輸入

  • fmt.Scanln(&number2) - 從使用者那裡獲取 number2 的輸入。

  • fmt.Scanln(&number3) - 從使用者那裡獲取 number3 的輸入。

  • largest = largestNumber(number1, number2, number3) - 在這行程式碼中,我們呼叫了 largestNumber() 函式,該函式將返回三個數字中最大的數字。

  • func largestNumber(number1, number2, number3 int32) int32 {} - 這是一個引數型別為 int32,返回值型別也為 int32 的函式,在 {} 之前聲明瞭返回值型別。

    • if number1 >= number2 && number1 >= number3 {} - 此 if 條件檢查 number1 是否是三個數字中最大的。

    • else if number2 >= number1 && number2 >= number3 {} - 此 else if 條件檢查 number2 是否是三個數字中最大的。

    • else { largest = number3 }  - 如果以上兩個條件都不匹配,則 number3 是最大的。

    • return localLargest - 在這行程式碼中,我們返回最大數字並將其儲存在主函式中。

  • fmt.Println("The largest number among", number1, number2, "and", number3, "is", largest) - 列印最大數字。

結論

這是在 Golang 中找到三個數字中最大值的兩種方法。從模組化和程式碼可重用性的角度來看,第二種方法更好,因為我們可以在專案的任何地方呼叫該函式。要了解更多關於 go 的資訊,您可以瀏覽這些 教程

更新於: 2022-08-29

1K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.