我的任务是“检查下面的代码并派生一个与精确总数相对应的函数g(n) 调用方法moreMystery后打印的整数。“
我的问题是如何找到一个依赖于数组长度的函数?我想看看答案,但对我来说更重要的是逐步解决问题的答案。
public void moreMystery ( int [] data ) {
int n = data.length; // find the length of the array
moreMysteryContinued (data, n - 1);
}
private void moreMysteryContinued ( int [] data , int i ) {
if ( i >= 0 ) {
System.out.print(data[i]);
moreMysteryContinued(data, i - 1);
moreMysteryContinued(data, i - 1);
}
}
答案 0 :(得分:0)
首先,我接受了print语句计数,并尝试从中导出一个公式。
2^4 -1 = 16 -1 = 15
2^3 -1 = 8 - 1 = 7
2^2 -1 = 4 - 1 = 3
因此,打印量的公式应为2 ^ n-1。
我将尝试解释如何通过代码找到公式。
对于每次调用moreMysteryContinued,它将生成2个以上的打印语句。因此,对于n次调用moreMysteryContinued,将会有2 ^ n个打印语句。我不完全确定-1进来的地方但基于计算它2 ^ n-1是整数打印的公式