我的编程空间,编程开发者的网络收藏夹
学习永远不晚

golang中使用递归计算数组中的平方和

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

golang中使用递归计算数组中的平方和

编程网今天将给大家带来《golang中使用递归计算数组中的平方和》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

所以我的朋友给了我这个任务,其中必须使用递归来计算正数的平方和。

条件 - 输入将是一个带有空格分隔数字的字符串

这就是我到目前为止所做的,但这显示了 runtime 错误

这是完整的错误 https://ideone.com/53oojn

package main
import(
    'fmt',
    'strings',
    'strconv'
)
var n int = 4
var sum_of_squares int = 0
func sumOfSquares(strArray []string, iterate int) int{
    number, _ := strconv.Atoi(strArray[iterate])
    if number > 0 {
        sum_of_squares += number*number
    }
    if iterate == n {
        return 0 // just to end the recursion
    }
    return sumOfSquares(strArray, iterate+1)
}
func main() {
    str := "1 2 3 4"
    strArray := strings.Fields(str)
    result := sumOfSquares(strArray, 0)
    fmt.Println(sum_of_squares, result)
}


解决方案


递归的经验法则是终止条件。它应该存在,并且应该存在于正确的地方。

func sumofsquares(strarray []string, iterate int) int{
    if iterate >= len(strarray) { 
        return sum_of_squares
    }
    number, _ := strconv.atoi(strarray[iterate]) //todo: handle err here
    sum_of_squares += number*number

    return sumofsquares(strarray, iterate+1)
}

仅供您参考:规范递归不应将其状态保存到全局字段中。我建议使用以下函数签名。

func sumOfSquares(strArray []string, iterate, currentSum int) int{
    //...    
    return sumOfSquares(strArray, iterate+1, sum_of_squares)
}

这样您就不需要将 sum_of_squares 存储在某处。您只需将其传递给下一个函数调用即可。

今天关于《golang中使用递归计算数组中的平方和》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

golang中使用递归计算数组中的平方和

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

golang中使用递归计算数组中的平方和

编程网今天将给大家带来《golang中使用递归计算数组中的平方和》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!问题内
golang中使用递归计算数组中的平方和
2024-04-04

C++ 递归函数在算法设计中的作用?

递归函数在 c++++ 算法设计中通过分解问题、重复解决子问题并优化效率发挥作用。它的语法是通过自身调用解决问题的函数。递归函数的实际应用包括计算阶乘、查找树的最大深度、求解迷宫、反转列表和排序算法。C++ 递归函数在算法设计中的作用递归
C++ 递归函数在算法设计中的作用?
2024-04-18

C++ 函数的递归实现:递归在计算机图形学中的应用示例?

递归在计算机图形学中有广泛应用,包括生成分形(使用递归函数生成自相似几何形状):例如,科赫曲线分形是通过一个递归函数绘制的,该函数每次调用时生成原始形状的较小版本。递归还用于遍历场景图,这是一个数据结构,用于表示 3d 场景中对象的层次关系
C++ 函数的递归实现:递归在计算机图形学中的应用示例?
2024-04-23

C#中如何使用迭代器和递归算法处理数据

C#中如何使用迭代器和递归算法处理数据,需要具体代码示例在C#中,迭代器和递归算法是两种常用的数据处理方法。迭代器可以帮助我们遍历集合中的元素,而递归算法则能够有效地处理复杂的问题。本文将详细介绍如何使用迭代器和递归算法来处理数据,并提供具
2023-10-22

Vue中组件递归的方法及使用问题有哪些

本篇内容介绍了“Vue中组件递归的方法及使用问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、第一个问题就是,循环表单;看下图然后
2023-06-29

通过例子和解释演示Python中递归函数的使用方法

Python递归函数的实例演示与讲解递归函数是一种特殊的函数,它能够在函数体内调用自己。通过递归函数,我们可以将一个问题分解成一个或多个更小的同类型问题来解决。在本篇文章中,我们将通过具体的代码示例来演示和讲解Python递归函数的使用方
通过例子和解释演示Python中递归函数的使用方法
2024-02-02

怎么在Java中使用线程计算数组和

怎么在Java中使用线程计算数组和?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码一:五个线程交替累加计算数组之和,这种方法其实不如单线程直接累加快,因为交替累加需要前一
2023-06-15

PHP中使用lambda函数计算数组交集和并集的优雅方法

在 php 中,lambda 函数可用作处理数组交集和并集的优雅方法。对于交集,使用 array_filter() 函数结合 lambda 函数来过滤元素,确定它们是否存在于另一个数组中;对于并集,使用 array_reduce() 函数结
PHP中使用lambda函数计算数组交集和并集的优雅方法
2024-05-04

Golang中的数组怎么定义和使用

这篇文章主要介绍“Golang中的数组怎么定义和使用”,在日常操作中,相信很多人在Golang中的数组怎么定义和使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang中的数组怎么定义和使用”的疑惑有所
2023-07-04

使用PHP的array_sum()函数计算数组中所有元素的总和

使用PHP的array_sum()函数计算数组中所有元素的总和PHP提供了强大的数组处理函数,其中array_sum()函数可以计算一个数组中所有元素的总和。在本文中,将详细介绍如何使用array_sum()函数,并提供一些相关的代码示例。
使用PHP的array_sum()函数计算数组中所有元素的总和
2023-11-04

Golang在大数据处理和云计算中的应用

Golang的应用场景:大数据处理、云计算等,需要具体代码示例随着互联网的快速发展,大数据处理和云计算等技术逐渐走进人们的视野。这些技术不仅能够帮助企业提高数据的处理速度和效率,还能够运用在诸如机器学习、人工智能等领域。而在这些领域中,G
Golang在大数据处理和云计算中的应用
2024-01-20

在PHP中使用位运算快速计算数组交集和并集

在 php 中,可以通过位运算符高效计算数组交集和并集:交集:使用按位与运算符 (&),共同存在的元素即为交集。并集:使用按位或运算符 (|),包含所有元素即为并集。在 PHP 中使用位运算快速计算数组交集和并集位运算符提供了在
在PHP中使用位运算快速计算数组交集和并集
2024-04-30

递归查询在数据库扩展性和可伸缩性设计中的作用

递归查询在数据库扩展性和可伸缩性设计中扮演着重要角色,特别是在处理层次结构数据时。递归查询允许开发者和数据库管理员以简洁、高效的方式处理复杂的数据关系,从而提高数据库系统的整体性能和可维护性。以下是递归查询在数据库扩展性和可伸缩性设计中的具
递归查询在数据库扩展性和可伸缩性设计中的作用
2024-09-08

使用Golang删除数组中特定元素的方法

如何使用Golang删除数组中指定的元素?在Golang的开发中,经常会遇到需要从数组中删除指定的元素的情况。本文将介绍如何使用Golang的内置函数和切片操作来实现这一目标,并提供具体的代码示例。Golang提供了一个内置函数copy
使用Golang删除数组中特定元素的方法
2024-01-24

怎么使用javascript数组求和中的reduce()方法

这篇文章将为大家详细讲解有关怎么使用javascript数组求和中的reduce()方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript有什么特点1、js属于一种解释性脚本语言;2、在绝
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录