Java 程序:使用递归打印整数的二进制表示
在本教程中,我们将学习如何使用递归打印整数的二进制表示。递归函数是调用自身的函数。但是在进一步讨论之前,如果您不熟悉 java 中 if 语句的概念,那么一定要查看主题为 Java 中条件语句的文章。
输入:输入数字:7
输出:等效二进制数为 111
程序 1:使用递归打印整数的二进制表示
在这个程序中,我们将看到如何使用递归打印整数的二进制表示。
算法:
- 开始
- 创建 Scanner 类的实例。
- 声明一个变量来存储数字。
- 要求用户初始化数字。
- 把这个数除以 2。
- 当数除以 2 时,存储余数。
- 重复以上两个步骤,直到数字大于零。
- 以相反的顺序打印数字。
- 停下来。
让我们看看下面的例子,以更好地理解上述算法。
//Java Program to convert an integer to binary
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
int n;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number:");
n = sc.nextInt();
Main obj = new Main();
int m = obj.binary(n);
System.out.println("The binary equivalent is:"+m);
}
public static int binary(int n)
{
if (n == 1)
{
return 1;
}
return binary(n / 2) * 10 + n % 2;
}
}
输入数字:9 二进制等值为:1001
程序 2:使用递归打印整数的二进制表示
在这个程序中,我们将看到如何使用递归打印整数的二进制表示。
算法:
- 开始
- 创建 Scanner 类的实例。
- 声明一个变量来存储数字。
- 要求用户初始化数字。
- 声明一个静态方法,该方法采用一个整数参数作为参数并返回一个字符串。
- 使用 StringBuilder 类将结果相互追加,并使用 toString()方法将输出生成器对象转换为字符串。
- 将特定数字除以 2,并将余数存储在变量中。
- 存储数字除以 2 后的整数值。
- 再次调用该函数,并用余数追加其结果
- 满足基本条件(number == 0)后,它从方法返回 StringBuilder 对象。
- 打印结果。
- 停下来。
让我们看看下面的例子,以更好地理解上述算法。
//Java Program to convert an integer to binary
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
int n;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number:");
n = sc.nextInt();
Main obj = new Main();
String m = obj.BRec(n);
System.out.println("The binary equivalent is:"+m);
}
public static String BRec(int num)
{
StringBuilder sB = new StringBuilder();
if(num > 0)
{
//get the remainder of the number when divided with 2
int rem = num % 2;
//get the whole number after the division
num /= 2;
sB.append(BRec(num)).append("").append(String.valueOf(rem));
return sB.toString();
}
else
{
return sB.toString();
}
}
}
输入数字:9 二进制等值为:1001