java使用递归传递带有基本情况的参数
我正在尝试完成printConvertedNumber方法,以使用递归在第二个参数指定的数字基中打印第一个参数。转换为基数2、4和8都使用相同的算法。将所需基数作为右操作数的%和/运算符用于将数字转换为所需基数。我尽量不在类中声明任何新的变量或对象
下面是它应该是什么样子,sample
这是我到目前为止所做的,注意我的尝试没有成功
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)
{
if (base <= 0)
{
return;
}
System.out.println("num: " + num + ", base: " + base);
printConvertedNumber(num/base,num%base);
}
}
这是我运行它时得到的结果
# 1 楼答案
问题在于
printConvertedNumber
方法。一旦num
降到0以下,就不会进行检查。此外,对该方法的递归调用也有点不合适。试试这个:以下是一些运行示例:
你可以对照this website检查你的答案
还有,JGrasp的荣誉。那是我的第一个IDE