java - 如何在 Java 中以递归方法获取 Sum
问题描述
我试图在下面的递归方法中得到总共n 。但问题是它在每个递归调用中打印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);
}
输出是这样的:
0 0 0 3 0 1 0 0 0 0 4 0 0 0 0 4 4 1
我正在寻找的是上述数字的总和,即17。
那么,这个问题的解决方案是什么?
我在这里查看了相同的主题,看起来这个问题没有任何有用的答案。请帮助我完整的方法。
解决方案
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;
}
推荐阅读
- java - 如何将 JSON 树“分解”为从父级到 Java 中连接的每个子级的单独列表?
- c - 如何读取c中特定列的行?
- file - 虚幻引擎无法生成 .uexp 文件
- node.js - 通过 Windows 命令行传递换行符 \n 字符
- sql - 完全连接具有重复值的两列
- java - 在 @Async 注释的情况下,Aspect 中的验证异常被吞没
- zebra-printers - 如何在不指定文本每个部分的位置的情况下打印价格?(ZPL)
- mongodb - 如何将字符串字段转换为已存在记录的嵌入文档中的对象 ID?
- java - 如何知道在 java 类文件中使用通用 Apache 库的目的是什么
- python - Numpy:如何有效地获取每行的前 N 个元素?