Golang 如何执行nCr(r组合)

Golang 如何执行nCr(r组合)

在本教程中,我们将在Golang编程语言中执行nCr(r组合)。 nCr(r组合)的用途是找到可能的排列总数,其中顺序无关紧要。换句话说,我们从n个物品中选择r个物品,而顺序不重要。本教程将介绍在Golang编程语言中找到此结果的两种方法。

解释

例如,当n = 5,r = 3时

nCr = n!/(r!*(n-r)!)

= 5!/(3!* 2!)

= 120 / 12

= 10

步骤

步骤1 - 声明所有所需变量来存储n,r,n的阶乘,r的阶乘和n-r的阶乘。

步骤2 - 初始化n,r,n的阶乘,r的阶乘和n-r的阶乘的值。

步骤3 - 计算n,r和n-r的阶乘。

步骤4 - 使用上述公式找到nCr。

步骤5 - 打印结果。

示例

在此示例中,我们将使用for循环找到nCr。

package main

// fmt package provides the function to print anything
import (
   "fmt"
)
func main() {

   // declaring the variables to store the value of n, r and answer
   var n, r, nFactorial, rFactorial, nminusrFactorial, answer int
   fmt.Println("Program to find the nCr using the for loop.")

   // initializing the value of n 
   n = 10

   // initializing the value of r
   r = 8
   nFactorial = 1

   // finding factorial of n
   for i := 1; i <= n; i++ {
      nFactorial = nFactorial * i
   }
   rFactorial = 1

   // finding factorial of r
   for i := 1; i <= r; i++ {
      rFactorial = rFactorial * i
   }
   nminusrFactorial = 1

   // finding factorial of n - r
   for i := 1; i <= n-r; i++ {
      nminusrFactorial = nminusrFactorial * i
   }

   // finding answer by using the formulae
   answer = nFactorial / (rFactorial * nminusrFactorial)

   // printing the result
   fmt.Println("The value of nCr with n =", n, "and r=", r, "is", answer)
}

输出

Program to find the nCr using the for loop.
The value of nCr with n = 10 and r= 8 is 45

步骤

第一步 - 声明所有所需的变量来存储 n、r、n 的阶乘、r 的阶乘和 n-r 的阶乘。

第二步 - 初始化 n、r、n 的阶乘、r 的阶乘和 n-r 的阶乘的值。

第三步 - 在独立的函数中找到 n、r 和 n-r 的阶乘。

第四步 - 使用上述公式计算 nCr。

第五步 - 打印结果。

示例

在此示例中,我们使用独立的函数来找到 n、r 和 n-r 的阶乘,以找到 nCr。

package main

// fmt package provides the function to print anything
import (
   "fmt"
)

// this is a recursive function of return type int

// which is returning the factorial of number

// passed in argument
func factorial(n int) int {
   if n == 1 {
      return 1
   }
   return factorial(n-1) * n
}
func main() {

   // declaring the variables to store the value of n, r and answer
   var n, r, nFactorial, rFactorial, nminusrFactorial, answer int
   fmt.Println("Program to find the nCr using the separate function to find the factorial of n, r and, n-r.")

   // initializing the value of n
   n = 10

   // initializing the value of r
   r = 8

   // finding factorial of n
   nFactorial = factorial(n)

   // finding factorial of r
   rFactorial = factorial(r)

   // finding factorial of n - r 
   nminusrFactorial = factorial(n - r)

   // finding answer by using the formulae
   answer = nFactorial / (rFactorial * nminusrFactorial)

   // printing the result
   fmt.Println("The value of nCr with n =", n, "and r=", r, "is", answer)
}

输出

Program to find the nCr using the separate function to find the factorial of n, r and, n-r.
The value of nCr with n = 10 and r= 8 is 45

结论

这是在Golang编程语言中执行nCr (r-组合) 的两种方式。第二种方式在模块化和代码可重用性方面更好,因为我们可以在项目中的任何地方调用该函数。要了解更多关于Golang的信息,您可以探索这些教程。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程