有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

不可能的谜题

谁能得到这个等式?我不能

class Calculator {
    public int count = 0;
public void calc(int n, int p) {
    count++;
        if (p>n) return;
        for (int i=0; i<n; i++) {
            calc(n, p+1);
        }
    }
}

// int n is input by keyboard
Calculator c = new Calculator();
c.calc(n, 0);
System.out.println(c.count);

有人知道这个等式或信息吗


共 (1) 个答案

  1. # 1 楼答案

    我想这会叫

    calc(n, 1); // this tree will appear n times
      calc(n, 2); // this tree will appear n times
        calc(n, 3) // this tree will appear n times
          .
           .
          calc(n, n+1) // this call will appear n times
    

    每次调用calc都会增加count。计算调用数相当于计算高度为n+2(此树的根表示调用c.calc(n, 0))的完整n元树的节点数。所以我认为解决办法是

    count = n^0 + n^1 + n^2 + ... + n^n + n^(n+1)