使用递归打印数字

时间:2016-05-05 00:35:09

标签: java recursion printing

如何使用递归打印printConvertedNumber方法中第二个参数指定的数字基数中的第一个参数

import java.util.Scanner;

class NumberBaseConversion
{
  public static void main(String[] args)
  {
    Scanner input = new Scanner(System.in);

    int number,
        base;

    do
    {
      System.out.print("Enter a positive base 10 number: ");
      number = input.nextInt();
    } while (number <= 0);
    do
    {
      System.out.print("Enter a base (2, 4, or 8): ");
      base = input.nextInt();
    } while (base != 2 && base != 4 && base != 8);
    printConvertedNumber(number, base);
    System.out.println();
  }

  private static void printConvertedNumber(int num, int base)
  {
    // Where i need to use recursion
  }
}

1 个答案:

答案 0 :(得分:1)

我将向您展示一个伪调用流,它将为基数为10的数字。

printConvertedNumber(1234, 10)
    printConvertedNumber(123, 10)
        printConvertedNumber(12, 10)
            printConvertedNumber(1, 10)
                print(1)
            print(2)
        print(3)
    print(4)

每次调用都可选择进行递归调用,然后是print语句,在给定的基数中打印传入号码的 last 数字。

结果:1234已打印。