使用递归查找两个数字的乘积的 Java 程序


在本文中,我们将了解如何在 Java 中使用递归查找两个数字的乘积。递归函数是指多次调用自身直到满足特定条件的函数。

递归 是以自相似的方式重复项目的过程。在编程语言中,如果程序允许您在同一函数内调用函数,则称为该函数的递归调用。

许多编程语言通过栈来实现递归。通常,每当一个函数(调用方)调用另一个函数(被调用方)或自身作为被调用方时,调用方函数都会将执行控制权转移到被调用方。此转移过程可能还涉及将一些数据从调用方传递到被调用方。

问题陈述

编写一个 Java 程序,使用递归查找两个数字的乘积。以下是相同的演示 -

输入

Enter two number : 12 and 9

输出

The product of 12 and 9 is 108

不同的方法

以下是使用递归查找两个数字乘积的不同方法 -

使用用户输入

以下是使用用户输入使用递归查找两个数字乘积的步骤 -

  • Scanner 类 导入 java.util 包 以读取用户输入。
  • 在 **ProductRecursion 类** 中,创建用户将输入两个数字的主方法。
  • 定义一个 Scanner 对象 (my_scanner) 以从控制台读取输入。
  • 提示用户输入两个数字 (my_input_1 和 my_input_2),并将这些数字存储在相应的变量中。
  • 调用 getproduct 方法,将 my_input_1 和 my_input_2 作为参数传递。
  • 定义递归方法 **getproduct**
    • 如果 **my_input_1** 小于 **my_input_2**,则通过使用交换后的参数再次调用 getproduct 来交换参数。
    • 如果 **my_input_2** 不为零,则将 my_input_1 添加到 getproduct(my_input_1, my_input_2 - 1) 的结果中。
    • 如果 **my_input_2** 为零,则返回 0(基本情况)。
  • 在控制台上打印这两个数字的乘积。
  • 关闭 Scanner 对象以防止资源泄漏。

示例

在这里,用户根据提示输入输入

import java.util.Scanner;
public class ProductRecursion{
   public static void main (String[] args){
      int my_input_1, my_input_2;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A reader object has been defined ");
      System.out.print("Enter the number : ");
      my_input_1 = my_scanner.nextInt();
      System.out.print("Enter the number : ");
      my_input_2 = my_scanner.nextInt();
      System.out.println("The product of "+my_input_1 +" and " +my_input_2 +" is " +getproduct(my_input_1, my_input_2));
   }
   static int getproduct(int my_input_1, int my_input_2){
      if (my_input_1 < my_input_2)
         return getproduct(my_input_2, my_input_1);
      else if (my_input_2 != 0)
          return (my_input_1 + getproduct(my_input_1, my_input_2 - 1));
      else
         return 0;
   }
}

输出

Required packages have been imported
A reader object has been defined
Enter the number : 12
Enter the number : 9
The product of 12 and 9 is 108

使用预定义值

以下是使用递归预定义值查找两个数字乘积的步骤 -

  • 在 **ProductRecursion 类** 中,定义主方法以计算预定义数字的乘积。
  • 为 **my_input_1** 和 **my_input_2** 设置预定义值。
  • 打印一条消息,显示这两个定义的数字。
  • 调用 getproduct 方法,将 **my_input_1** 和 **my_input_2** 作为参数传递。
  • 定义递归方法 getproduct
    • 检查 **my_input_1** 是否小于 **my_input_2**。如果是,则使用交换后的参数调用 getproduct。
    • 如果 **my_input_2** 不为零,则递归地将 **my_input_1** 添加到 getproduct(my_input_1, my_input_2 - 1) 的结果中。
    • 如果 **my_input_2** 为零,则返回 0 作为基本情况。
  • 在控制台上打印这两个数字的乘积。

示例

在这里,整数先前已定义,并且其值在控制台上被访问和显示 -

public class ProductRecursion{
   public static void main (String[] args){
      int my_input_1, my_input_2;
      my_input_1 = 12;
      my_input_2 = 9;
      System.out.println("The two numbers are defined as " +my_input_1 +" and " +my_input_2);
      System.out.println("The product of "+my_input_1 +" and " +my_input_2 +" is " +getproduct(my_input_1, my_input_2));
   }
   static int getproduct(int my_input_1, int my_input_2){
      if (my_input_1 < my_input_2)
         return getproduct(my_input_2, my_input_1);
      else if (my_input_2 != 0)
         return (my_input_1 + getproduct(my_input_1, my_input_2 - 1));
      else
         return 0;
   }
}

输出

The two numbers are defined as 12 and 9
The product of 12 and 9 is 108

更新于:2024年11月13日

557 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告