网址导航网站有哪些,做交通工程刬线的网站公司,网站推广建设策略,手机app制作视频教程Golang学习记录#xff1a;基础篇练习#xff08;一#xff09; 1、九九乘法表2、水仙花数3、斐波那契数列4、编写一个函数#xff0c;求100以内的质数5、统计字符串里面的字母、数字、空格以及其他字符的个数6、二维数组对角线的和7、冒泡排序算法8、选择排序算法9、二分查… Golang学习记录基础篇练习一 1、九九乘法表2、水仙花数3、斐波那契数列4、编写一个函数求100以内的质数5、统计字符串里面的字母、数字、空格以及其他字符的个数6、二维数组对角线的和7、冒泡排序算法8、选择排序算法9、二分查找法 今天分享的是尝试用golang来写一些我们之前用其他语言实现过的例子。如果你也在学习golang的话可以先自己做一遍然后再来看我的答案。 答案是经过测试的不存在错误可放心食用
1、九九乘法表
package mainimport fmtfunc main() {fmt.Println(九九乘法表:)for i : 1; i 9; i {for j : 1; j i; j {fmt.Printf(%d*%d%-2d , j, i, i*j)}fmt.Println()}
}
2、水仙花数
package mainimport (fmtmath
)func main() {fmt.Println(水仙花数:)for i : 100; i 1000; i {hundred : float64(i / 100)ten : float64(i / 10 % 10)one : float64(i % 10)//math.Pow函数的定义需要两个float64类型的参数。这是由Go语言的标准库决定的。//当你尝试将float32类型的值传递给它时编译器会抛出一个错误因为float32和//float64是不同的数据类型它们在内存中的表示和精度都不同。if math.Pow(hundred, 3)math.Pow(ten, 3)math.Pow(one, 3) float64(i) {fmt.Println(i)}}
}
3、斐波那契数列
package mainimport fmtfunc main() {var n, t1, t2 10, 0, 1fmt.Print(斐波那契数列: )for i : 1; i n; i {fmt.Print(t1, )nextTerm : t1 t2t1 t2t2 nextTerm}fmt.Println()
}
4、编写一个函数求100以内的质数
package mainimport (fmt
)func isPrime(n int) bool {if n 1 {return false}for i : 2; i*i n; i {if n%i 0 {return false}}return true
}func main() {fmt.Println(100以内的质数:)for i : 2; i 100; i {if isPrime(i) {fmt.Print(i, )}}fmt.Println()
}
5、统计字符串里面的字母、数字、空格以及其他字符的个数
package mainimport (fmt
)func main() {str : Hello, 世界! 123 Go.var letters, digits, spaces, others intfor _, char : range str {if (char a char z) || (char A char Z) {letters} else if char 0 char 9 {digits} else if char {spaces} else {others}}fmt.Printf(字母: %d\n数字: %d\n空格: %d\n其他: %d\n, letters, digits, spaces, others)
}// switch 判断// func countChars(s string) (letters, digits, spaces, others int) {
// for _, char : range s {
// switch {
// case unicode.IsLetter(char):
// letters
// case unicode.IsDigit(char):
// digits
// case unicode.IsSpace(char):
// spaces
// default:
// others
// }
// }
// return
// }// func main() {
// s : Hello, 世界! 123 Go.
// letters, digits, spaces, others : countChars(s)
// fmt.Printf(字母: %d\n数字: %d\n空格: %d\n其他: %d\n, letters, digits, spaces, others)
// }
6、二维数组对角线的和
package mainimport (fmt
)func main() {matrix : [][]int{{1, 2, 3},{4, 5, 6},{7, 8, 9},}var sum intn : len(matrix)for i : 0; i n; i {sum matrix[i][i] matrix[i][n-i-1]}fmt.Printf(二维数组对角线的和: %d\n, sum)
}
7、冒泡排序算法
package mainimport (fmt
)func bubbleSort(nums []int) []int {n : len(nums)for i : 0; i n-1; i {for j : 0; j n-i-1; j {if nums[j] nums[j1] {nums[j], nums[j1] nums[j1], nums[j]}}}return nums
}func main() {nums : []int{64, 34, 25, 12, 22, 11, 90}fmt.Println(冒泡排序结果:, bubbleSort(nums))
}
8、选择排序算法
package mainimport (fmt
)func selectionSort(nums []int) []int {n : len(nums)for i : 0; i n; i {minIdx : ifor j : i 1; j n; j {if nums[j] nums[minIdx] {minIdx j}}nums[i], nums[minIdx] nums[minIdx], nums[i]}return nums
}func main() {nums : []int{64, 34, 25, 12, 22, 11, 90}fmt.Println(选择排序结果:, selectionSort(nums))
}
9、二分查找法
package mainimport (fmt
)func binarySearch(nums []int, target int) int {left, right : 0, len(nums)-1for left right {mid : left (right-left)/2if nums[mid] target {return mid} else if nums[mid] target {left mid 1} else {right mid - 1}}return -1
}func main() {nums : []int{2, 3, 4, 7, 10, 21, 23, 40, 67}target : 10result : binarySearch(nums, target)if result ! -1 {fmt.Println(元素在数组中的位置为, result1)} else {fmt.Println(元素不在数组中)}
}
文末再分享几个我在github上面找到的优质开源项目方便日后学习
七天用 Go 从零实现系列7days-golang
Training for Golang (go language)
Go 数据可视化项目go-echarts
都到这个份上了不点赞很难说得过去吧doge
o(┰*)ゞ