Golang 示例 - 计算自然数之和的程序

154 阅读2分钟

这篇文章我们将介绍三个寻找自然数之和的程序

  • 用户输入的前n个自然数的总和
  • 使用for循环的前n个自然数的总和
  • 前n个自然数的总和 递归函数

自然数是正整数或整数,从0,1,2开始.... n。这些数字也称为非正数。这篇文章是关于计算从1到n的自然数之和,其中n是由用户从控制台读取的。

为了理解这个程序,你应该对以下golang的特性有所了解。

示例程序 1- 用户输入的前n个自然数的总和

下面的程序从用户的命令行控制台获取输入的数字,并计算出到给定数字的自然数之和。

package main  
  
import (  
 "fmt"  
)  
  
func main() {  
 //reading an multiple input string  
 var number int  
 fmt.Print("Please enter number:")  
 fmt.Scanln(&number)  
 sumResult := 0  
 for i := 0; i <= number; i++ {  
  sumResult += i  
 }  
 fmt.Printf("Sum of  %d numbers is  %d", number, sumResult)  
}  

输出是

Please enter number:10  
Sum of  10 numbers is  55  

上述程序使用Scanln函数从用户那里读取输入的数字,并将该数字存储在一个变量中。
使用for循环,迭代并计算从0到n的数值
最后,将总和打印到控制台。

示例程序 2 使用for循环计算自然数的总和

在这个程序中,没有接受用户的输入,变量值是固定的,像上面的程序一样,for循环被用来计算到一个给定的数字。
最后将数值打印到控制台

package main  
  
import (  
 "fmt"  
)  
  
func main() {  
 max := 10  
 sumResult := 0  
 for i := 0; i <= max; i++ {  
  sumResult += i  
 }  
 fmt.Printf("Sum of  %d numbers is  %d", max, sumResult)  
}  

输出是

The Sum of  10 numbers is  55

示例程序 3- 递归函数 自然数之和

package main  
  
import (  
 "fmt"  
)  
  
func sumNatural(numb int) int {  
 if numb != 0 {  
  return numb + sumNatural(numb-1)  
 } else {  
  return numb  
 }  
}  
  
func main() {  
 number := 10  
 fmt.Printf("Sum of  %d numbers is  %d", number, sumNatural(number))  
}  

输出为

Sum of  10 numbers is  55  

在上面的程序中,声明了sumNatural递归函数。这将在主函数中被调用,最初使用sumNatural(10)函数。

下一个函数调用将从sumNatural启动,它再次调用sumNatural(8)并添加这个结果。这个过程的序列将继续下去,直到numb等于0。

当numb为0时,递归调用的执行将被停止,最后将结果返回给主函数。