我正在为我的类编写代码,以递归方式找到b的基数为n的日志。我还被告知假设n正好是某个整数幂的b。到目前为止,我有以下代码:
public int log(int b, int n ) {
if (n / b == 1) {
return 1;
} else {
return log(b, n / b) + 1;
}
}
当我提交它时,它表示我通过了所有测试用例,除了一个隐藏测试。我正在努力找到我的代码到底出了什么问题,因为它没有告诉我如果失败了什么测试。我之前看过一个类似的问题,但是给定的解决方案仍然告诉我它没有通过隐藏测试。
编辑:这就是我的结果。测试用例是预定义的,代码全部在线。 link
答案 0 :(得分:2)
如果n < b
,则您的代码会生成StackOverflowError
。
这可能是您的代码中缺少的内容。
答案 1 :(得分:0)
如果b == 0会怎样?他们可能正在投掷一个平均情况呃