Java 程序使用递归查找数字的反向


2022 年 4 月 11 日, Learn eTutorial
1424

在这里,我们将解释如何编写一个 Java 程序来找出数字的反向。所以首先我们必须从用户那里读取数字。然后我们将找出数字的长度并调用递归函数 reverse() 来找出数字的反向。

什么是数字的反转?

假设数字是 563,那么数字的反向是 365。数字的反向就是将该数字的数字反转。

如何实现 Java 程序以使用递归找出数字的反向?

首先,我们必须声明类 RevOfNum。然后声明整数变量 n、count、a。变量 n 用于保存数字,count 用于保存数字的长度。创建扫描器类 sc 的对象并从用户那里读取整数数字到变量 n 中。使用 while 循环找出数字中包含在变量 count 中的位数。创建类 RevOfNum 的对象 obj 并调用递归函数 reverse(n, count) 并显示数字的反向作为 b。

在函数 reverse(int x, int y) 中,检查是否 y=1,如果为真则返回 x。否则计算 z=x, x=x/10 并返回 (int) ((z * pow(10, y - 1)) + reverse(x, --y))

算法

步骤 1:使用 public 修饰符声明类 RevOfNum。

步骤 2:打开 main() 以启动程序,Java 程序执行从 main() 开始

步骤 3:声明整数变量 n, count, a 并设置 count=0

步骤 4:将数字读入变量 n

步骤 5:将 a 赋值给 n

步骤 6:使用条件 a>0 的 while 循环执行步骤 7。

步骤 7 将 count 增加 1。

步骤 8:将 a 除以 10 并重复步骤 6。

步骤 9:创建类 RevOfNum 的对象 obj。

步骤 10:调用递归函数 obj.reverse(n, count)

步骤 11:显示数字的反向作为 b

函数 reverse(int x, int y)

步骤 1:检查是否 y=1,如果是则返回 x。否则执行步骤 2。

步骤 2:计算 z=xx=x/10

步骤 3:返回 (int) ((z * pow(10, y - 1)) + reverse(x, --y))

 

Java 源代码

                                          import static java.lang.StrictMath.pow;
import java.util.Scanner;
public class RevOfNum 
{
    public static void main(String[] args) 
    {
        int n, count = 0, a;
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number:");
        n = sc.nextInt();
        a = n;
        while(a > 0)
        {
            count++;
            a = a / 10;
        }
        RevOfNum obj = new RevOfNum();
        int b = obj.reverse(n, count);
        System.out.println("Reverse of the number is :"+b);
    }
    int reverse(int x, int y)
    {
        if(y== 1)
        {
            return x;
        }
        else
        {
            int z = x % 10;
            x = x / 10;
            return (int) ((z * pow(10, y - 1)) + reverse(x, --y));
        }
    }
}
                                      

输出

Enter the number:
12345
Reverse of the number is :54321