首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法将这个迭代函数转换为递归函数?

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

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

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

代码语言:javascript
运行
复制
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 16:18:10

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

代码语言:javascript
运行
复制
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 16:52:02

尝尝这个。

代码语言:javascript
运行
复制
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
运行
复制
Collection integers = List.of(1, 2, 3, 4);
System.out.println(add(integers));

输出

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

https://stackoverflow.com/questions/63481944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档