Tag: 递归

递归除法

我需要创建一个递归方法,将第一个值(基数10)转换为第二个数字的数字。 这是我到目前为止,但由于某种原因,我不能让递归函数正常工作。 谢谢。 package lab06250; import java.util.Scanner; public class Main { public static void main(String[] args) { Number newNumber; newNumber = new Number(); Scanner kbd = new Scanner(System.in); int number; int remainder = 0; int base; System.out.println(“Enter number:”); number = kbd.nextInt(); System.out.println(“Enter base”); base = kbd.nextInt(); kbd.nextLine(); System.out.println(Division(number, base)); } public static int Division(int n, […]

一种递归算法,用于在数组中查找总和为给定整数的两个整数

我需要一个算法来确定一个数组是否包含两个与给定整数相加的元素。 数组已排序。 该算法应该是递归的并且在O(n)中运行。 递归步骤应该基于总和,这意味着方法传递总和并根据最终结果返回true或false(如果找到两个元素 – 返回true,否则返回false) 只能使用线性数据结构。 任何想法都赞赏..

模拟嵌套循环

在初学者的编程书(免费许可证)中,有以下代码,在Java中动态创建嵌套循环: import java.util.Scanner; public class RecursiveNestedLoops { public static int numberOfLoops; public static int numberOfIterations; public static int[] loops; public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print(“N = “); numberOfLoops = input.nextInt(); System.out.print(“K = “); numberOfIterations = input.nextInt(); input.close(); loops = new int[numberOfLoops]; nestedLoops(0); } public static void nestedLoops(int currentLoop) { […]

Java练习:使用递归方法打印星号三角形及其倒三角形

我需要打印一个三角形和倒三角形(站在它的尖端)。 我设法只打印出三角形。 我知道我可以很容易地使用for循环,但我想知道如何使用递归,在我的情况下,我不知道如何打印三角形和倒置的一个。谢谢。 Example desired output: * ** *** **** **** *** ** * 我的代码: public class Recursion1 { public static void main(String[] args) { Recursion1 me = new Recursion1(); me.doIt(); } public void doIt() { nums(4); } public String nums(int counts) { if (counts <= 0) { return ""; } String p = nums(counts […]

子集和的动态编程方法

给出以下输入 10 4 3 5 5 7 哪里 10 = Total Score 4 = 4 players 3 = Score by player 1 5 = Score by player 2 5 = Score by player 3 7 = Score by player 4 我打印的玩家组合得分加总,所以输出可以是1 4因为玩家1 +玩家4得分= 3 + 7 – > 10或输出可以是2 3因为玩家2 +玩家3得分= 5 + 5 – […]

递归 – 相反顺序的数字

我需要实现一个递归方法printDigits,它以整数num作为参数,并以相反的顺序打印其数字,每行一位数。 这是我到目前为止: public class PrintDigits { public static void main(String[] args) { System.out.println(“Reverse of no. is ” + reversDigits(91)); } /* Recursive function to reverse digits of num */ public static int reversDigits(int number) { if (number == 0) return number; else { return number % 10; } } } 我觉得我只缺少一行代码,但不确定我需要做些什么来修复它。

在这个例子中无法理解递归是如何工作的

我得到了以下代码: public int func(int n){ if(n == 1) return 2; else return 3 * func(n-1)+1; } 我可以理解像factorial和fibonacci这样的递归,但对于这个我不能。 我试图追踪逻辑: if n is 3: return 3 * func(2) + 1 return 3 * func(1) + 1 return 3 * 2 + 1 return 7 我总是以7与任何其他数字结束,我知道这是错误的,因为我在运行程序时获得了不同的值。 你能帮我理解递归是如何工作的吗?

Java:递归构造函数调用和stackoverflow错误

请帮助理解为什么以下代码 public class HeapQn1 { /** * @param args */ public HeapQn1() { new HeapQn1(); } static HeapQn1 n = new HeapQn1(); public static void main(String[] args) { } } 结果是 java.lang.StackOverflowError at com.rg.test.interview.HeapQn1.(HeapQn1.java:8) at com.rg.test.interview.HeapQn1.(HeapQn1.java:9) … 根据我的理解,对象的内存分配发生在堆内存中,我期待OutOfMemoryError,因为在某些时候堆内存将因为重复的对象创建而已满。 在研究中,我发现java构造函数被认为是一个方法,它解释了StackOverflowError,直到我阅读了以下线程。 什么时候在java中调用构造函数? 这说 3. The object is fully constructed/created when the constructor returns. 从我可以收集的,构造函数是一个方法,因为堆内存比堆栈内存大得多,递归构造函数调用导致StackOverflowError。 它是否正确 ? 由于给定代码中的对象不会被完全创建,构造函数的堆栈帧分配实际上会发生吗? […]

JAXB无休止的数据结构,递归绑定?

在开始一个项目之前,我想在这里找到一个简短的问题。 如果我有这样的结构: a元素可以容纳a元素,这无休止地深入。 我只是写一个A类然后给它一个List作为成员吗? JAXB会自动完成魔术吗? 或者这种结构不可能?

在Java中重复排列数组

在网站上有一些类似的问题已经有所帮助,但我不能完全解决这个问题,所以我希望这不是重复的。 这是一个家庭作业,你有一组字符[A,B,C],并且必须使用递归来获得所有的排列(重复)。 我有的代码是这样做的: char[] c = {‘A’, ‘B’ , ‘C’}; public void printAll(char[] c, int n, int k) { if (k == n) { System.out.print(c); return; } else { for (int j = 0; j<n; j++) { for (int m = 0; m<n; m++) { System.out.print(c[k]); System.out.print(c[j]); System.out.print(c[m] + "\r\n"); } } } printAll(c, n, […]