使用递归查找两个数字的乘积的 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
广告