Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用递归打印数字_Java_Recursion_Printing - Fatal编程技术网

Java 使用递归打印数字

Java 使用递归打印数字,java,recursion,printing,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 { Syst

如何使用递归打印
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
  }
}
import java.util.Scanner;
类编号B安全版本
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
整数,
基础
做
{
System.out.print(“输入一个正基10号:”);
number=input.nextInt();

}而(number我将向您展示一个伪调用流,它将为基数为10的号码执行此操作

printConvertedNumber(1234, 10)
    printConvertedNumber(123, 10)
        printConvertedNumber(12, 10)
            printConvertedNumber(1, 10)
                print(1)
            print(2)
        print(3)
    print(4)
每个调用都可以选择进行递归调用,然后是一个print语句,该语句在给定的基中打印传入号码的最后一位


结果:
1234
被打印出来了。

问题是?如果没有递归,你会怎么做呢?首先找出获得正确数字的算法(把步骤写在纸上,用手在几个数字上试一下),然后应该很明显。我认为递归在这里不是一个好的选择。只需使用
Integer.toString(x,base)
并取第一个数字。@TimBiegeleisen虽然是一个有效点,但这似乎不是本练习的目的。这当然可以通过一种相当简单的方式完成。对我来说,这似乎是学习递归(和算法)的练习,可能是一个家庭作业。