如何在 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+ 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告