java—使用递归将数字转换为其他数字基

vjrehmav  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(285)

假设num>=0,基数在2到10之间;convert(13,2)返回“1101”
这是我的代码到目前为止,我得到stackoverflow错误

public String convert(int num, int base) { 
  if (num < 0 || base < 2 && base >10) {
    return""; 
  }
  return convert(num / base, base) + (num % base);  
}
ukxgm1gy

ukxgm1gy1#

类似于@saka1029所说的 num < 0 需要 num <= 0 以及 return ""; 需要注意的时候 num=0 ,你有 && base > 10 而不是 || base > 10 . 你的意思是“如果我们的数字是负数(不可能,因为起始数字至少是0)或者基数小于2大于10(同样不可能,一个数字不能小于2大于10),那么返回一个空字符串。
因为递归函数是一个无限循环,所以出现了stackoverflow错误。 num 不能小于0且 base 不能同时小于2和大于10。

相关问题