我想打印变量count
的最终值但是当我在countTrees
方法中使用它时,这也将打印中间值。而且我无法在我的主要方法中访问count
。我不想更改返回变量
public class treecount {
public static void main(String[] args){
countTrees(3);
//System.out.println(countTrees(3));
//System.out.println(count);
}
public static int countTrees(int numKeys) {
//int temp = 0;
int count = 0;
if (numKeys <=1) {
count += 1;
return(1);
}
else {
int sum = 0;
int left, right, root;
for (root=1; root<=numKeys; root++) {
left = countTrees(root-1);
right = countTrees(numKeys - root);
// number of possible trees with this root == left*right
sum += left*right;
count += root*left*right;
}
System.out.println(count);
return(sum);
}
}
}
输出:
3
3
10
需要输出:
10
嘿伙计们提前帮助我解决这个问题
答案 0 :(得分:1)
我找到了一种方法 - 一种解决方法,但它在那里是一个疯狂的递归丛林......
布尔值internal
表示函数是从内部还是外部调用的,因此确定计算是否已完成,在这种情况下将count
返回到超出调用者,而不是{{ 1}}对自己。
sum
答案 1 :(得分:0)
你走在正确的轨道上,试试这个:
删除System.out.println(count);从计数树方法(因为这就是它多次打印出来的原因。
在main方法中,使用System.out.println(countTrees(3));你之前评论过。
注意:您在countTrees方法中返回值,而不是变量