作者:看那个码农
公众号:看那个码农
上期内容介绍了Go语言学习之力扣-删除有序数组中的重复项II|Go主题月
- 删除有序数组中的重复项II
本篇内容将继续带领大家走进Go语言的世界。
1.本文简介
Go语言学习之十道经典数值运算题
2.求出一个数组的和与平均值
代码如下:
package main
import (
"fmt"
)
func main() {
var strint = [...]float64{1, 2, 3, 4, 5, 6.892}
sum := 0.0
for _, val := range strint {
//累计求和
sum += val
}
//平均值保留到3位小数
fmt.Printf("数组元素累加和sum=%.4v,\n元素累加平均值=%.4v \n",sum, float64(sum)/float64(len(strint)))
}
输出为:
3.求出一个数组的最大值,并输出元素对应的下标
代码如下:
package main
import (
"fmt"
)
func main() {
var intArr = [...]int{3,4,9,8,15,20}
maxVal := intArr[0]
maxValIndex := 0
for i := 0; i < len(intArr); i++ {
//从第二个元素开始循环比较,如果发现有更大的数,则交换
if maxVal < intArr[i] {
maxVal = intArr[i]
maxValIndex = i
}
}
fmt.Printf("数组最大值%v,\n数值最大值的下标为%v", maxVal, maxValIndex)
}
输出为:
4.用Go语言打印1~100之间,9的整数倍数的个数及总和
代码如下:
package main
import "fmt"
func main() {
var count int = 0
var sum int = 0
var i int = 1
fmt.Print("100以内9的倍数的整数有:")
for ; i <= 100; i++ {
if i % 9 == 0 {
count++
sum += i
fmt.Print(" ",i)
}
}
fmt.Printf("\n一共有%v个,总和为%v\n",count,sum)
}
输出为:
5.打印1~30之间的奇数
代码如下:
package main
import "fmt"
func main() {
for i:= 1;i<=30;i++{
if i%2==0 {
continue
}
fmt.Println("30以内的奇数是:",i)
}
}
输出为:
6.打印1~30之间的偶数
代码如下:
package main
import "fmt"
func main() {
for i:= 1;i<=30;i++{
if i%2==0 {
fmt.Println("30以内的偶数是:",i)
}
}
}
输出为:
7. 求1+2!+3!+…+20!的和
代码如下:
package main
import "fmt"
func main() {
var a, b = 1, 0
for i := 1; i <=20; i++ {
a = a * i
b = b + a
fmt.Printf("%d的阶乘是:%d\n", i, b)
}
fmt.Println("1+2!+3!+...+20!的和是:", b)
}
输出为:
8.求第n个数的斐波那契数
代码如下:
package main
import "fmt"
func Fibonacci(n int) int {
if (n == 1 || n == 2) {
return 1
} else {
return Fibonacci(n-1)+ Fibonacci(n-2)
}
}
func main() {
fmt.Println("您想输出第几个数的斐波那契数:")
var x int
fmt.Scan(&x)
res :=Fibonacci(x)
fmt.Printf("第%v个数的斐波那契数是%v",x,res)
}
输出为:
9.求两个数的最大公约数和最小公倍数
代码如下:
package main
import "fmt"
func yueshu(node1 int,node2 int) int {
var node3 int
for node2 != 0 {
node3 = node1 % node2
node1 = node2
node2 = node3
}
return node1
}
func main() {
var a,b,c int
fmt.Scan(&a,&b)
tempA := a
tempB := b
c=yueshu(tempA,tempB)
fmt.Println("最大公约数为:",c)
fmt.Println("最小公倍数为:",tempA*tempB/c)
}
输出为:
10.求1000以内的水仙花数
每个位上数字的立方和,刚好等于该数字本身,那么就叫水仙花数。
比如:153
1*1*1 + 5*5*5 + 3*3*3 = 1+125+27=153
代码如下:
package main
import (
"fmt"
"math"
)
func main() {
for i := 100; i < 1000; i++ {
x := i / 100 //百位
y := i / 10 % 10 //十位
z := i % 10 //个位
if math.Pow(float64(x), 3)+math.Pow(float64(y), 3)+math.Pow(float64(z), 3) == float64(i) {
fmt.Println(i)
}
}
}
输出如下:
11.向上取整,向下取整,四舍五入
代码如下:
package main
import (
"fmt"
"math"
)
func main() {
node:=5.4
fmt.Printf("%v向上取整后的数为:%v\n",node,math.Ceil(node))
fmt.Printf("%v向下取整后的数为:%v\n",node,math.Floor(node))
fmt.Printf("%v四舍五入后的数为:%v\n",node,math.Round(node))
}
输出为:
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。