Java递归查找日志

Java递归查找日志,java,Java,我正在为我的类编写代码,以递归方式查找以b为底的n的日志。我还被告知假设n是某个整数幂的正b。到目前为止,我有以下代码: public int log(int b, int n ) { if (n / b == 1) { return 1; } else { return log(b, n / b) + 1; } } 当我提交它时,它说我通过了所有的测试用例,除了一个隐藏的测试。我正在努力找出我的代码到底有什么问题,因为它没有告诉我如果失败了该做什么测试。我以前见过

我正在为我的类编写代码,以递归方式查找以b为底的n的日志。我还被告知假设n是某个整数幂的正b。到目前为止,我有以下代码:

public int log(int b, int n ) {
  if (n / b == 1) {
    return 1;
  } else {
    return log(b, n / b) + 1;
  }
}
当我提交它时,它说我通过了所有的测试用例,除了一个隐藏的测试。我正在努力找出我的代码到底有什么问题,因为它没有告诉我如果失败了该做什么测试。我以前见过一个类似的问题,但是给出的解决方案仍然告诉我它没有通过一个隐藏的测试


编辑:这就是我的结果。测试用例是预定义的,代码都是在线的

如果b==0会发生什么?他们可能在平均情况下抛出eh

如果
n
,则您的代码将导致
堆栈溢出错误。

这可能是您的代码中缺少的内容。

,因为它没有显示失败时的测试。。。那么你的测试不是很有用。我认为您应该在调试模式下逐步完成测试套件。遗憾的是,它是联机的,所以我可以调试它。测试是预定义的,这就是它显示给我的所有检查您的所有边缘情况,例如0的日志未定义,1的日志为零,对于任何基础。谢谢,我忘记了检查1的日志。是的,我试着检查b==0和n==0,但结果是一样的。我尝试用return(int)(Math.log(n)/Math.log(b))强制执行它;但它修复了一个隐藏测试,但使另一个隐藏测试失败。