我在编写Java的递归方法时遇到了一些麻烦,像斐波那契数列、最大公约数等简单的问题我可以解决。 现在我需要编写一个递归方法将十进制数转换为二进制,并以字符串形式返回结果。我不确定是否需要在递归调用中将字符串结果返回回来,或者有没有更有效的方法来编写它。 public static String toBinary(int decimal) {...} 有人可以介绍一些简单的步骤来完成这个吗?递归对我来说还有些模糊。
你可能应该做的是在每次递归中将 十进制数 除以2: 如果输入是偶数 → 最后一位是0,将输入除以2并再次调用toBinary 如果输入是奇数 → 最后一位是1,将输入减1,然后除以2,再次调用toBinary 然后尝试找出何时停止递归并如何将位附加到字符串中。
String
表示。你可以从底部开始尝试 - 如果输入 0,会发生什么,如果输入 1,会发生什么,如果输入 2 和 3,又会发生什么,然后可以通过递归调用来处理字符串拼接。 - luk2302