Golang学习记录:基础篇练习(一)
Golang学习记录:基础篇练习(一)
- 1、九九乘法表
- 2、水仙花数
- 3、斐波那契数列
- 4、编写一个函数,求100以内的质数
- 5、统计字符串里面的字母、数字、空格以及其他字符的个数
- 6、二维数组对角线的和
- 7、冒泡排序算法
- 8、选择排序算法
- 9、二分查找法
今天分享的是尝试用golang来写一些我们之前用其他语言实现过的例子。如果你也在学习golang的话,可以先自己做一遍,然后再来看我的答案。

(答案是经过测试的,不存在错误,可放心食用)
1、九九乘法表
package mainimport "fmt"func 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 ("fmt""math"
)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 "fmt"func 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[j+1] {nums[j], nums[j+1] = nums[j+1], 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("元素在数组中的位置为:", result+1)} else {fmt.Println("元素不在数组中")}
}
文末再分享几个我在github上面找到的优质开源项目,方便日后学习:
七天用 Go 从零实现系列:7days-golang
Training for Golang (go language)
Go 数据可视化项目:go-echarts
都到这个份上了,不点赞很难说得过去吧(doge)
o( ̄┰ ̄*)ゞ
相关文章:
Golang学习记录:基础篇练习(一)
Golang学习记录:基础篇练习(一) 1、九九乘法表2、水仙花数3、斐波那契数列4、编写一个函数,求100以内的质数5、统计字符串里面的字母、数字、空格以及其他字符的个数6、二维数组对角线的和7、冒泡排序算法8、选择排序算法9、二分查…...
sql注入(7), python 实现盲注爆破数据库名, 表名, 列名
python 实现盲注 该python脚本根据之前介绍的盲注原理实现, 对于发送的注入请求没有做等待间隔, 可能给目标服务器造成一定 压力, 所以仅限于本地测试使用. import requests, time# 时间型盲注 def time_blind(base_url, cookie):for length in range(1, 20): # 测试数据库名…...
2021年12月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python编程(1~6级)全部真题・点这里 C/C编程(1~8级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 执行以下程序 a[33,55,22,77] a.sort() for i in a:print(i)运行…...
卡尔曼家族从零解剖-(01)预备知识点
讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…...
技术分享| 二进制部署MySQL
一、介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System&#x…...
3.1 模板测试与深度测试(Stencil Test Z Test)
一、模板测试(Stencil Test) 模板测试可以实现的一些效果图 1.是什么 ①从渲染管线出发:模板测试是在逐片源操作阶段,透明测试之后,深度测试之前的位置。 ②从书面概念上理解 说到模板测试,就要先说道模…...
一些常见的必须会的谭浩强基本代码大全也是常考的应试是没问题的
//1. 1£¡+2£¡+3£¡+...20! /* #include <stdio.h> int main() {int i;long sum=0,k=1;for(i=1;i<=20;i++){k*=i;sum+=k;}printf("%d",sum); } *///方法2 /* #include <stdio.h> int main() {int i,j;long sum=0,k;for(i…...
C语言天花板——指针(进阶1)
接上次的指针初阶(http://t.csdnimg.cn/oox5s),这次我们继续的探寻指针的奥秘,发车咯!!!🚗🚗🚗 一、字符指针 可以看到我们将指针p给打印出来,就是…...
二、深度测试(Z Test)
1.是什么 ①从渲染管线出发 ②书面上理解 所谓深度测试,就是针对当前对象在屏幕上(更准确的说是frame buffer)对应的像素点,讲对象自身的深度值与当前该像素点缓存的深度值进行比较,如果通过了,本对象再改…...
Vue_Bug VUE-ADMIN-TEMPLATE-MASTER electron build后无法登录
Bug描述: VUE-ADMIN-TEMPLATE-MASTER 项目在经过 electron 的 build 命令后,无法登录 问题原因: 大部分vue 前段项目 会使用 js-cookie 这个库 来操作浏览器的cookie 然而这个库 在electron下 会无法使用 (最坑的是还没报错&…...
睡衣内衣服装商城小程序的作用是什么
服装行业一直都是市场很重要的组成部分,每个人都需要,且根据品牌、样式作用等可以细分很多类目,其中睡衣内衣也有不小的市场规模,从业商家多、市场需求度高。 但同时睡衣内衣经营痛点也比较明显。 当今消费者习惯于线上消费&…...
idea怎么设置作者信息(详细)
目录 一:在Java类的开头自动注释作者名字和日期等信息 二:给Java的方法注释作者名字和日期等信息 1. 不可修改的模板:Postfix Completion 2. 可修改的模板:Live Templates tips:首先给大家推荐两款好用的免费软件&…...
产品经理如何有效跟进开发进度?
作为产品经理,很难跟进开发过程。随着软件开发的复杂性和不断变化的产品环境,产品经理必须保持在开发过程的顶端,并确保目标得到满足。产品经理如何跟进开发进度? 第一步是对开发过程本身有一个扎实的理解。产品经理必须熟悉开发过…...
【已解决】Qt无法追踪到mouse移动事件
本博文源于笔者正在亲身经历的Qt无法追踪到鼠标移动事件。事情是这样的,笔者有一个应用程序,当应用程序移动进窗口里的时候,每移动一下,检测鼠标位置,进而调整鼠标的形状,结果发现它这死活不听话。后来解决…...
Dubbo从0到1——万字完整学习笔记
目录 RPC理论概述 RPC的基本思想 RPC的实现组成部分 RPC的实现流程 RPC的核心思想 RPC调用分类 初识Dubbo Dubbo特性 Dubbo设计架构 zookeeper环境搭建 搭建注册中心环境 搭建监控中心环境 Dubbo入门案例(Dubbo Spring) 实现步骤 搭建中介者组件共享资源 打包为jar…...
Rust初接触
一、什么是Rust Rust 是由 Mozilla 开发的多范式编程语言,专注于性能和安全性。 Rust 以其先进的安全并发能力而闻名, 它的语法类似于 C,但它提供了更快的速度和内存安全性,但不使用垃圾收集器。 Rust 最初是为 Mozilla Firefox …...
shell脚本学习笔记03(小滴课堂)
在shell脚本中,表示变量除了可以使用$a(a是一个变量),还可以使用${a} 那这两种表示方式有什么区别么? 花括号可以和其它字符或者字母区分开来。 >追加内容 我们发现使用>会把原来的内容覆盖。 我们使用>>就不会覆盖了ÿ…...
软件工程和计算机科学与技术学习方向区别
软件工程(Software Engineering)和计算机科学与技术(Computer Science and Technology)是两个相关但不同的领域,它们涉及到计算机和软件的不同方面。以下是它们之间的主要区别: 计算机科学与技术ÿ…...
React常用hooks总结
React Hooks react常用hooks React Hooks React Hooks是React16.8版本新增的特性,它允许你在不编写class的情况下使用state以及生命周期等特性。 在React中,组件的创建方式有两种:类组件和纯函数组件。 然而,函数组件没有状态…...
【算法学习】-【滑动窗口】-【找到字符串中所有字母异位词】
LeetCode原题链接:438. 找到字符串中所有字母异位词 下面是题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&…...
WebPages 发布
WebPages 发布 引言 随着互联网技术的飞速发展,Web技术已经成为现代信息社会不可或缺的一部分。WebPages作为Web技术的重要应用,旨在为用户提供高效、便捷的网页浏览体验。本文将详细介绍WebPages的发布过程,包括技术选型、功能设计、性能优化以及用户体验等方面。 技术选…...
BEYOND REALITY Z-Image新手入门:三步生成你的第一张8K写真人像
BEYOND REALITY Z-Image新手入门:三步生成你的第一张8K写真人像 1. 为什么选择BEYOND REALITY Z-Image? 在当前的AI图像生成领域,写实人像一直是最具挑战性的任务之一。传统模型往往难以平衡细节精度与自然感,生成的图片要么过于…...
示波器测量UART波特率的原理与实践
1. 示波器测量串口波特率的原理与方法 1.1 串口通信基础 在嵌入式系统开发中,UART串口通信是最常用的调试接口之一。正确识别串口波特率对于设备调试和逆向工程具有重要意义。串口通信采用异步传输方式,其关键参数包括: 波特率:…...
Karp的21个NPC问题:从理论到实践的经典探索
1. Karp与NPC问题的历史背景 1971年,Stephen Cook在论文《The Complexity of Theorem Proving Procedures》中首次提出了NP完全性的概念,并证明了布尔可满足性问题(SAT)属于NP完全问题。这一突破性工作为计算复杂性理论奠定了基石…...
使用Tableau Public
一、实验准备 官网:探索 | Tableau Public 二、实验步骤 (一)数据获取与导入 打开 Tableau Public,点击左侧 **“获取数据”** → 选择 **“示例数据集”**。在示例数据集列表中选个顺眼的。数据加载后,在左侧 “数…...
别再乱删C盘大文件了!一文搞懂pagefile.sys和hiberfil.sys的正确处理姿势
别再乱删C盘大文件了!一文搞懂pagefile.sys和hiberfil.sys的正确处理姿势 每次打开资源管理器看到C盘飘红,是不是总想找几个"大块头"开刀?先别急着对pagefile.sys和hiberfil.sys下手——这两个看似占空间的系统文件,其实…...
IDEA使用maven打包Java项目,跳过test的3种方法
文章目录第一种:命令行第二种:pom.xml设置第三种:IDEA工具操作第一种:命令行 命令行的方式,在哪输入命令都行。 mvn install -Dmaven.test.skiptrue第二种:pom.xml设置 修改pom.xml文件 <build>&…...
3月31枚举
...
256K上下文颠覆智能编程:Qwen3-Coder重构全栈开发效率范式
256K上下文颠覆智能编程:Qwen3-Coder重构全栈开发效率范式 【免费下载链接】Qwen3-Coder-30B-A3B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-Coder-30B-A3B-Instruct 问题发现:传统AI编程助手的三大痛点 2025年Stac…...
深入解析STM32 SysTick定时器:从原理到时间片轮询实战
1. SysTick定时器的前世今生 第一次接触STM32的开发板时,我就被这个叫做SysTick的神秘定时器吸引了。当时我正为如何实现精确延时发愁,GPIO翻转测试显示软件延时误差高达30%,直到一位资深工程师提醒我:"内核里就藏着个高精度…...
