Golang-指定文本,求奇数行正数平方和

2024-09-05 12:08

本文主要是介绍Golang-指定文本,求奇数行正数平方和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在stack看到HENNGE公司的招聘信息,于是去参加了一次线上笔试。对方法发了三道题,此为第一道题——使用Golang处理文本。

下为要求:

仔细思考后,发现一个规律:

  1. 第1行指定总行数;
  2. 偶数行n指定下一行奇数行n+1行的个数;
  3. 全部数据喂完后出结果,意味着最后是扔进数组,放到最后遍历。

提示:

  1. 要求不能使用for;
  2. 只能使用基本库。

因为Golang的循环语句出来了for,只剩下goto和递归。因为用goto会下地狱,因此我用递归。因为没学过Golang,只看了几个小时的语句介绍,可能写的比较菜,见谅。

package mainimport ("fmt""io/ioutil""regexp""strconv""strings"
)var output []intfunc main() {var err1 errorvar testfile0 []string// That's the test file name// this demo get data from the test.txtfile, err1 := ioutil.ReadFile("./test.txt")if err1 != nil {fmt.Println(err1)}testfile0 = strings.Split(string(file), "\r\n")total, _ := strconv.Atoi(testfile0[0])count := 0m := 0list(m, testfile0, count, total)// fmt.Println(output)outPrint(0, output)
}func squareSum(n int, arr []string) int {// fmt.Println("传进来的参数,代表个数:", n)// fmt.Println("此时指定奇数行的值:", arr[n-1])num, _ := strconv.Atoi(arr[n-1])if n == 1 {num1, _ := strconv.Atoi(arr[0])// fmt.Println("最后一个的平方:", num1*num1)return num1 * num1}if num >= 0 {// fmt.Println("平方:", num*num)return num*num + squareSum(n-1, arr)}return squareSum(n-1, arr)}func outPrint(i int, output []int) {if i+1 > len(output) {return}// fmt.Println("i", i)// fmt.Println("output[i]", output[i])fmt.Println(output[i])i++outPrint(i, output)return
}func list(m int, testfile0 []string, count int, total int) {if m+1 >= len(testfile0) {// fmt.Println(count)if count == total {fmt.Println("success, the first line number equal the test line ")return}fmt.Println("error, the first line number not equal the test line")return}if (m+1)%2 == 0 {var sum int = 0// fmt.Println("m:", m)// fmt.Println("testfile0[m+1]:", testfile0[m+1])pretext := regexp.MustCompile(`\s`)text := pretext.ReplaceAllString(testfile0[m+1], `,`)// fmt.Println("得到的数组:", text)// fmt.Println("上一行,指定的数字个数:", testfile0[m])var arr []string = strings.Split(text, ",")num, _ := strconv.Atoi(testfile0[m])sum = squareSum(num, arr)count++// fmt.Println("total:", sum)output = append(output, sum)// fmt.Println(output)// outPrint(0, output)// return output}m++list(m, testfile0, count, total)// fmt.Println(output)return
}

 

 

 

 

 

 

这篇关于Golang-指定文本,求奇数行正数平方和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138914

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

golang版本升级如何实现

《golang版本升级如何实现》:本文主要介绍golang版本升级如何实现问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录golanwww.chinasem.cng版本升级linux上golang版本升级删除golang旧版本安装golang最新版本总结gola