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

相关文章

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

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

golang版本升级如何实现

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

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja