这篇文章我们将介绍三个寻找自然数之和的程序
- 用户输入的前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时,递归调用的执行将被停止,最后将结果返回给主函数。