如何在 Golang 中计算商和余数?
在本教程中,我们将了解通过对用户提供的被除数和除数进行算术运算来查找商和余数的方法。本教程将介绍两种实现相同目标的方法。
解释
要除任何数字,我们使用“ / ”算术运算符,要查找余数,我们使用“ % ”算术运算符
假设我们有一个被除数 19 和一个除数 4,则商和余数如下
Quotient = dividend / divisor = 19 / 4 = 4 Remainder = dividend % divisor = 19 % 4 = 3
函数内的商和余数
算法
- 步骤 1 − 声明 int32 数据类型的被除数、除数、商和余数变量。
- 步骤 2 − 从用户处获取被除数和除数的输入。
- 步骤 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 dividend, divisor, // quotient, and the remainder of type int32 using the var keyword var dividend, divisor, quotient, remainder int32 fmt.Println("Program to find the quotient and the remainder of a number within the function.") // initializing the dividend dividend = 92 // initializing the dividend divisor = 7 // finding the quotient by / arithmetic operator quotient = dividend / divisor // finding the remainder by % arithmetic operator remainder = dividend % divisor // Printing the result fmt.Println("Dividend =", dividend, "\nDivisor=", divisor) fmt.Println("Quotient = ", quotient) fmt.Println("Reminder = ", remainder) }
输出
Program to find the quotient and the remainder of a number within the function. Dividend = 92 Divisor= 7 Quotient = 13 Reminder = 1
代码描述
var dividend, divisor, quotient, remainder int32 − 在此行中,我们声明了稍后将使用的被除数、除数、商和余数。由于被除数、除数、商和余数将为整数,因此我们使用了 int32 数据类型。
quotient = dividend / divisor − 使用 / 算术运算符查找商
remainder = dividend % divisor − 使用 % 算术运算符查找余数。
fmt.Println("The quotient is", quotient) − 打印商
fmt.Println("The remainder is", remainder) − 打印余数。
单独函数中的商和余数。
算法
步骤 1 − 声明 int32 数据类型的被除数、除数、商和余数变量。
步骤 2 − 从用户处获取被除数和除数的输入
步骤 3 − 使用被除数和除数作为参数调用函数,并存储 quotientFunction(dividend, divisor int32) 函数返回的商。
步骤 4 − 使用长度和宽度作为参数调用函数,并存储 remainderFunction(dividend, divisor int32) 函数返回的余数
步骤 5 − 打印结果。
示例 2
在此示例中,我们将通过定义单独的函数来查找商和余数。
package main // fmt package provides the function to print anything import ( "fmt" ) // This function is returning the quotient func quotientFunction(dividend, divisor int32) int32 { // finding the quotient by / arithmetic operator return dividend / divisor } // This function is returning the remainder func remainderFunction(dividend, divisor int32) int32 { // finding the remainder by % arithmetic operator return dividend % divisor } func main() { // declaring the variables to store dividend, divisor, // quotient, and the remainder of type int32 using the var keyword var dividend, divisor, quotient, remainder int32 fmt.Println("Program to find the quotient and the remainder of a number by using the separate function.") // scanning the value of the dividend from the user fmt.Println("Enter the value of the dividend:") fmt.Scanln(÷nd) // scanning the value of the divisor from the user fmt.Println("Enter the value of the divisor:") fmt.Scanln(&divisor) // finding the quotient by calling the quotientFunction() function quotient = quotientFunction(dividend, divisor) // finding the remainder by calling the remainderFunction() function remainder = remainderFunction(dividend, divisor) // Printing the result fmt.Println("The quotient is", quotient) fmt.Println("The remainder is", remainder) }
输出
Program to find the quotient and the remainder of a number by using the separate function. Enter the value of the dividend: 63 Enter the value of the divisor: 4 The quotient is 15 The remainder is 3
代码描述
var dividend, divisor, quotient, remainder int32 − 在此行中,我们声明了稍后将使用的被除数、除数、商和余数。由于被除数、除数、商和余数将为整数,因此我们使用了 int32 数据类型。
fmt.Scanln(÷nd) − 从用户处获取被除数的输入。
fmt.Scanln(&divisor) − 从用户处获取除数的输入。
quotient = quotientFunction(dividend, divisor) − 通过调用 quotientFunction() 函数查找商。
func quoitentFunction(dividend, divisor int32) int32 {} − 这是包含查找商逻辑的函数。该函数具有 int32 类型的被除数和除数作为参数,并且还具有 int32 的返回类型。
func remainderFunction(dividend, divisor int32) int32 {} − 这是包含查找余数逻辑的函数。该函数具有 int32 类型的被除数和除数作为参数,并且还具有 int32 的返回类型。
remainder = remainderFunction(dividend, divisor) − 通过调用 remainderFunction() 函数查找商。
fmt.Println("The quotient is", quotient) − 打印商。
fmt.Println("The remainder is", remainder) − 打印余数。
结论
这是在 Golang 中查找商和余数的两种方法。从模块化和代码可重用性的角度来看,第二种方法更好,因为我们可以在项目的任何地方调用该函数。要了解有关 go 的更多信息,您可以浏览这些 教程。