如何在 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 的信息,您可以浏览这些 教程。