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 − 在这行代码中,我们声明了三个变量number1、number2、number3,它们将存储用户输入的数字,以及一个变量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 − 声明类型为int32的变量number1、number2、number3和largest。
-
步骤 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的知识,可以探索这些 教程 。