简体   繁体   English

如何在 Java 中的递归方法中获取 Sum

[英]How to get Sum in a recursive method in Java

I am trying to get a total of n in the following recursive method.我试图在以下递归方法中获得总共n But the problem is it prints n in each recursion call.但问题是它在每次递归调用中打印n

    public void recur2(Folder folder) {
    
    int n = 0;
    
    if (folder.getSubfolders() != null) {
        
        n += folder.getSubfolders().size();
        
        Set<Folder> folders = folder.getSubfolders();
        
        for(Folder fldr: folders) {
            recur2(fldr);
        }
    }
    System.out.println(n);
}

The output is something like this:输出是这样的:

0 0 0 3 0 1 0 0 0 0 4 0 0 0 0 4 4 1

What I'm looking for is the total of the above numbers which is 17.我正在寻找的是上述数字的总和,即17。

So, what would be the solution to this issue?那么,这个问题的解决方案是什么?

I looked at the same topics here and it looks like there isn't any useful answer to this problem.我在这里查看了相同的主题,看起来这个问题没有任何有用的答案。 Please help me with the complete method.请帮我提供完整的方法。

public long getTotalSubfolders(Folder folder) {
    if(folder == null)
        return 0;
    if(folder.getSubfolders() == null)
        return 0;
    
    long n = folder.getSubfolders().size();
    
    for(Folder subFolder : folder.getSubfolders())
        n += getSubfolders(subFolder);
    
    return n;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM