当前位置: 首页 > news >正文

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学习记录&#xff1a;基础篇练习&#xff08;一&#xff09; 1、九九乘法表2、水仙花数3、斐波那契数列4、编写一个函数&#xff0c;求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编程&#xff08;1~6级&#xff09;全部真题・点这里 C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 执行以下程序 a[33,55,22,77] a.sort() for i in a:print(i)运行…...

卡尔曼家族从零解剖-(01)预备知识点

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…...

技术分享| 二进制部署MySQL

一、介绍 ​MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Database Management System&#x…...

3.1 模板测试与深度测试(Stencil Test Z Test)

一、模板测试&#xff08;Stencil Test&#xff09; 模板测试可以实现的一些效果图 1.是什么 ①从渲染管线出发&#xff1a;模板测试是在逐片源操作阶段&#xff0c;透明测试之后&#xff0c;深度测试之前的位置。 ②从书面概念上理解 说到模板测试&#xff0c;就要先说道模…...

一些常见的必须会的谭浩强基本代码大全也是常考的应试是没问题的

//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)

接上次的指针初阶&#xff08;http://t.csdnimg.cn/oox5s&#xff09;&#xff0c;这次我们继续的探寻指针的奥秘&#xff0c;发车咯&#xff01;&#xff01;&#xff01;&#x1f697;&#x1f697;&#x1f697; 一、字符指针 可以看到我们将指针p给打印出来&#xff0c;就是…...

二、深度测试(Z Test)

1.是什么 ①从渲染管线出发 ②书面上理解 所谓深度测试&#xff0c;就是针对当前对象在屏幕上&#xff08;更准确的说是frame buffer&#xff09;对应的像素点&#xff0c;讲对象自身的深度值与当前该像素点缓存的深度值进行比较&#xff0c;如果通过了&#xff0c;本对象再改…...

Vue_Bug VUE-ADMIN-TEMPLATE-MASTER electron build后无法登录

Bug描述&#xff1a; VUE-ADMIN-TEMPLATE-MASTER 项目在经过 electron 的 build 命令后&#xff0c;无法登录 问题原因&#xff1a; 大部分vue 前段项目 会使用 js-cookie 这个库 来操作浏览器的cookie 然而这个库 在electron下 会无法使用 &#xff08;最坑的是还没报错&…...

睡衣内衣服装商城小程序的作用是什么

服装行业一直都是市场很重要的组成部分&#xff0c;每个人都需要&#xff0c;且根据品牌、样式作用等可以细分很多类目&#xff0c;其中睡衣内衣也有不小的市场规模&#xff0c;从业商家多、市场需求度高。 但同时睡衣内衣经营痛点也比较明显。 当今消费者习惯于线上消费&…...

idea怎么设置作者信息(详细)

目录 一&#xff1a;在Java类的开头自动注释作者名字和日期等信息 二&#xff1a;给Java的方法注释作者名字和日期等信息 1. 不可修改的模板&#xff1a;Postfix Completion 2. 可修改的模板&#xff1a;Live Templates tips&#xff1a;首先给大家推荐两款好用的免费软件&…...

产品经理如何有效跟进开发进度?

作为产品经理&#xff0c;很难跟进开发过程。随着软件开发的复杂性和不断变化的产品环境&#xff0c;产品经理必须保持在开发过程的顶端&#xff0c;并确保目标得到满足。产品经理如何跟进开发进度&#xff1f; 第一步是对开发过程本身有一个扎实的理解。产品经理必须熟悉开发过…...

【已解决】Qt无法追踪到mouse移动事件

本博文源于笔者正在亲身经历的Qt无法追踪到鼠标移动事件。事情是这样的&#xff0c;笔者有一个应用程序&#xff0c;当应用程序移动进窗口里的时候&#xff0c;每移动一下&#xff0c;检测鼠标位置&#xff0c;进而调整鼠标的形状&#xff0c;结果发现它这死活不听话。后来解决…...

Dubbo从0到1——万字完整学习笔记

目录 RPC理论概述 RPC的基本思想 RPC的实现组成部分 RPC的实现流程 RPC的核心思想 RPC调用分类 初识Dubbo Dubbo特性 Dubbo设计架构 zookeeper环境搭建 搭建注册中心环境 搭建监控中心环境 Dubbo入门案例(Dubbo Spring) 实现步骤 搭建中介者组件共享资源 打包为jar&#xf…...

Rust初接触

一、什么是Rust Rust 是由 Mozilla 开发的多范式编程语言&#xff0c;专注于性能和安全性。 Rust 以其先进的安全并发能力而闻名&#xff0c; 它的语法类似于 C&#xff0c;但它提供了更快的速度和内存安全性&#xff0c;但不使用垃圾收集器。 Rust 最初是为 Mozilla Firefox …...

shell脚本学习笔记03(小滴课堂)

在shell脚本中&#xff0c;表示变量除了可以使用$a(a是一个变量)&#xff0c;还可以使用${a} 那这两种表示方式有什么区别么&#xff1f; 花括号可以和其它字符或者字母区分开来。 >追加内容 我们发现使用>会把原来的内容覆盖。 我们使用>>就不会覆盖了&#xff…...

软件工程和计算机科学与技术学习方向区别

软件工程&#xff08;Software Engineering&#xff09;和计算机科学与技术&#xff08;Computer Science and Technology&#xff09;是两个相关但不同的领域&#xff0c;它们涉及到计算机和软件的不同方面。以下是它们之间的主要区别&#xff1a; 计算机科学与技术&#xff…...

React常用hooks总结

React Hooks react常用hooks React Hooks React Hooks是React16.8版本新增的特性&#xff0c;它允许你在不编写class的情况下使用state以及生命周期等特性。 在React中&#xff0c;组件的创建方式有两种&#xff1a;类组件和纯函数组件。 然而&#xff0c;函数组件没有状态…...

【算法学习】-【滑动窗口】-【找到字符串中所有字母异位词】

LeetCode原题链接&#xff1a;438. 找到字符串中所有字母异位词 下面是题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...