java - 是否可以仅使用除法、休息和递归将 int 打印为二进制?

标签 java recursion

长话短说,对于一个介绍性的 Java 类,我的任务是创建一个看起来像这样的递归函数

printDual(int n)

以二进制形式打印 n。除此之外,我也只允许使用除法和休息运算符。我的第一个想法是使用

  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);
    }

关于java - 是否可以仅使用除法、休息和递归将 int 打印为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089231/

相关文章:

java - 检查类是否被 CDI 1.2 代理

java.lang.NoSuchMethodError : spring. service.UserServiceImpl.addUser(Lspring/model/User;)V

PowerShell,具有 -Depth 输出的 Get-ChildItem

c++ - 如何在没有备忘录的情况下使用内存来执行此递归代码?

c - 如何在递归函数中寻址树

java - FileOutputStream 没有写入服务器上的磁盘?文件去哪里了?

java - GSON JsonSyntaxException 反序列化 Java 日期对象

java - 二进制优化搜索

c - C 递归过程中的递归调用

c - 如何存储递归函数的多个返回值