如何将方法的变量用于main方法

时间:2015-08-09 09:34:29

标签: java methods

我想打印变量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

嘿伙计们提前帮助我解决这个问题

2 个答案:

答案 0 :(得分:1)

我找到了一种方法 - 一种解决方法,但它在那里是一个疯狂的递归丛林......

布尔值internal表示函数是从内部还是外部调用的,因此确定计算是否已完成,在这种情况下将count返回到超出调用者,而不是{{ 1}}对自己。

sum

答案 1 :(得分:0)

你走在正确的轨道上,试试这个:

删除System.out.println(count);从计数树方法(因为这就是它多次打印出来的原因。

在main方法中,使用System.out.println(countTrees(3));你之前评论过。

注意:您在countTrees方法中返回,而不是变量