Java 是否可以仅使用除法、rest和递归将int打印为二进制?
长话短说,对于一个介绍性Java类,我的任务是创建一个递归函数Java 是否可以仅使用除法、rest和递归将int打印为二进制?,java,recursion,Java,Recursion,长话短说,对于一个介绍性Java类,我的任务是创建一个递归函数 printDual(int n) 以二进制打印n。除此之外,我还只允许使用除法和rest运算符。我的第一个想法是使用 printDual(int n) { if(n > 0) { System.out.print(n%2); printDual(n/2); } } 但这只是向后打印。有人能想出一个在限制范围内解决这个问题的方法吗 只要反向思考一次,递归解决方案就会变得显而易见
printDual(int n)
以二进制打印n。除此之外,我还只允许使用除法和rest运算符。我的第一个想法是使用
printDual(int n) {
if(n > 0) {
System.out.print(n%2);
printDual(n/2);
}
}
但这只是向后打印。有人能想出一个在限制范围内解决这个问题的方法吗 只要反向思考一次,递归解决方案就会变得显而易见 试试这个:
void printDual(int n) {
if (n>0) {
printDual(n/2);
System.out.print(n%2);
}
第一个想法:尝试交换
println
和printdul
调用。交换语句!?;)(1.recurse 2.system.out)我的想法是将n减去2^(可能的最大数),然后将n减少1,形成一个循环。在这种情况下,使用某种存储方法根据这些信息查找二进制字符串。哦,对了。然后使用一种方法,使用乘法。