Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有办法将这个迭代函数转换为递归函数?

有没有办法将这个迭代函数转换为递归函数?
EN

Stack Overflow用户
提问于 2020-08-19 07:24:28
回答 2查看 32关注 0票数 0

最初,我们被鼓励用递归来解决这个问题,但到目前为止,我只能想到一个迭代的方法。

代码语言:javascript
运行
AI代码解释
复制
import java.util.*;

public class Problem1 {

    static Integer add(Collection integers) {
        Integer sum = 0;
    
        Iterator iterator = integers.iterator();        
    
        while (iterator.hasNext()) {
            
            sum = sum + (Integer) iterator.next();
        }
        return sum;
        
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-19 08:18:10

一种方法是使用元素,然后在使用迭代器递归时删除元素。

代码语言:javascript
运行
AI代码解释
复制
public class Problem1 {    
    static Integer add(Collection integers) {
        Integer sum = 0;
        Iterator it = integers.iterator();
    
        if (!it.hasNext()) {
            return 0;
        }
        Integer number = (Integer)it.next();
        it.remove();
        sum += number + add(integers);

        return sum;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2020-08-19 08:52:02

尝尝这个。

代码语言:javascript
运行
AI代码解释
复制
static Integer add(Iterator it) {
    if (!it.hasNext())
        return 0;
    else
        return (Integer)it.next() + add(it);
}

static Integer add(Collection integers) {
    return add(integers.iterator());
}

代码语言:javascript
运行
AI代码解释
复制
Collection integers = List.of(1, 2, 3, 4);
System.out.println(add(integers));

输出

代码语言:javascript
运行
AI代码解释
复制
10
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63481944

复制
相关文章
「函数」递归与迭代
重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。例如利用迭代法求某一数学问题的解。
AXYZdong
2022/02/04
9630
「函数」递归与迭代
递归(recursion):递归常被用来描述以自相似方法重复事物的过程,在数学和计算机科学中,指的是在函数定义中使用函数自身的方法。(A调用A)
AXYZdong
2022/05/05
2820
「函数」递归与迭代
c语言函数的迭代与递归_递归与迭代
使用递归需进行,如果递归的深度并不是很深,便可以使用。递归的子问题一定要有解。(即递归一定要有回归条件。)
全栈程序员站长
2022/08/18
1.2K0
递归函数[通俗易懂]
当然,你可以尝试会发生什么结果,理论上会永远运行下去,但实际操作时发现不一会儿程序就报错了,因为每次调用函数都会用掉一点内存,在足够多的函数调用发生后,空间几乎被占满,程序就会报错。
全栈程序员站长
2022/09/07
7270
递归函数[通俗易懂]
递归函数
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。
大忽悠爱学习
2021/03/04
7120
递归函数
这里使用的是命名函数表达式的方法实现递归,将这个函数赋值给 factorial 。这样即使在使用过程中对变量进行修改,也不会影响已赋值的递归函数进行调用,保证了代码的安全性。这种方式在严格模式和非严格模式下都适用。
就只是小茗
2018/12/12
7810
函数递归
如果一个函数在内部调用自身本身,则该函数就是递归函数 递归优缺点   优点:使用递归函数的优点是逻辑简单清晰      理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰   缺点:过深的调用会导致栈溢出 栈溢出   使用递归函数需要注意防止栈溢出   在计算机中,函数调用是通过栈(stack)这种数据结构实现的   每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧   由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出 尾递归   解决递归调用栈溢出的方法是通过尾递归优化   事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的
py3study
2020/01/15
9560
学习LAMBDA函数:将Excel公式转换为自定义函数(上)
引言:本文学习整理自microsoft.com,LAMBDA的真正的解决了Excel公式存在的先天不足,让Excel公式真正的强大起来了。
fanjy
2023/02/16
1.3K0
学习LAMBDA函数:将Excel公式转换为自定义函数(上)
递归函数和匿名函数
生信喵实验柴
2023/09/04
1540
递归函数和匿名函数
学习LAMBDA函数:将Excel公式转换为自定义函数(下)
引言:本文学习整理自microsoft.com,LAMBDA的真正的解决了Excel公式存在的先天不足,让Excel公式真正的强大起来了。
fanjy
2023/02/16
2.5K0
学习LAMBDA函数:将Excel公式转换为自定义函数(下)
python递归函数讲解_Python递归函数实例讲解
本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 last = len(alist)-1 found = False while first<=last and not found: midpoint = (first + last)//2 if alist[midpoint] == item: found = True else: if ite
全栈程序员站长
2022/11/17
3.4K0
python递归函数讲解_Python递归函数实例讲解
优化函数递归
递归是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。使用递归解决问题,思路清晰,代码少。但是在 Python 中,使用递归会消耗很大的空间,可能还会产生大量的重复的计算。所以我们应该想办法消除递归,下面我以斐波那契序列为例讲解几种消除递归的方法。
不可言诉的深渊
2019/08/13
1.1K0
javascript递归函数
当你把这个函数拿到浏览器上运行的时候,你会发现内存溢出了,为什么呢?因为这个递归函数没有停止处理或运算的出口,因此 这个递归函数就演变为一个死循环。
用户6167509
2019/09/04
7700
尾递归函数
Kotlin 支持一种称为尾递归的函数式编程风格。 这允许一些通常用循环写的算法改用递归函数来写,而无堆栈溢出的风险。 当一个函数用 tailrec 修饰符标记并满足所需的形式时,编译器会优化该递归,留下一个快速而高效的基于循环的版本:
阿超
2022/10/31
7340
Python 递归函数
递归函数 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出: fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n 所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。 于是,fact(n)用递归的方式写出来就是:
bear_fish
2018/09/20
1.2K0
Python 递归函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
全栈程序员站长
2022/09/07
1.4K0
Python 递归函数
C语言-内联函数、递归函数、指针函数
这篇文章介绍C语言的内联函数、递归函数、函数指针、指针函数、局部地址、const关键字、extern关键字等知识点;这些知识点在实际项目开发中非常常用,非常重要。
DS小龙哥
2022/01/07
6750
Python函数递归
1.己知有一个数列:f(0) = 1,f(1) = 4,f(n + 2) = 2*f(n+ 1) +f(n),其中 n 是大于 0 的整数,求 f(10) 的值。 找出f(n): f(0) = 1,f(1) = 4, f(n + 2) = 2*f(n + 1) +f(n) 当n=1时: f(3)=2*f(2)+f(1) 当n=2时: n=2 f(4)=2*f(3)+f(2) 当n=3时: n=3 f(5)=2*f(4)+f(3) 当n=4时: n=4 f(6)=2*f(5)+f(4) ...... f(n)
织幻妖
2021/07/04
9280
Python函数递归
Python递归函数
https://www.python-course.eu/recursive_functions.php
py3study
2020/01/20
1.2K0
python递归函数
python递归函数 英文的Recursion从词源上分析只是"re- (again)" + "curs- (come, happen)" 也就是重复发生,再次重现的意思。 而对应的中文翻译 ”递归“ 却表达了两个意思:”递“+”归“。 这两个意思,正是递归思想的精华所在。从这层次上来看,中文翻译反而更达意。
红芽
2020/08/19
1K0

相似问题

如何将这个迭代函数转换为递归函数?

23

将迭代函数转换为递归函数

20

将递归函数转换为迭代函数

15

将迭代函数转换为递归函数

12

将迭代函数转换为递归函数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文