package com.lw.list; /*** * f(n)=n+f(n-1) * @author liwei * */ public class 递归Test { /*** * 方法一 * 递归方法DecimalToBinary,把一个十进制数转换成二进制数 * @param num */ public void DecimalToBinary(int num) { if (num == 0) { // 当num=0时,循环结束 return; } else { DecimalToBinary(num / 2); // 调用递归方法 System.out.print(num % 2); } } /*** * 方法二 * 递归方法DecimalToBinary1,把一个十进制数转换成二进制数 * @param num * @return */ public String DecimalToBinary1(int num) { if (num == 0) { // 当num=0时,循环结束 return ""; } else { return DecimalToBinary1(num / 2) + Integer.toString(num % 2); // 调用递归方法 } } /*** * 阶乘 * 1*2*3*4....n * @param num * @return */ public int jiecheng(int num) { if(num==1) { return 1; } else { return num * jiecheng(num - 1); } } /*** * 叠加 * 1,2,3...100 依次相加的结果 * @param num * @return */ public int sum(int num) { if (num > 0) { return num + sum(num - 1); } else { return 0; } } /*** * 斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、…… * 这个数列从第三项开始,每一项都等于前两项之和。 * @param n * @return */ public int fib(int n) { if (n == 0) return 0; if (n == 1) return 1; if (n > 1) return fib(n - 1) + fib(n - 2); return 0; } /*** * 两个数字的最大公约数 * @param num1 * @param num2 */ public void yueshu(int num1, int num2) { if (num1 == num2) { System.out.println(num1); // num1=num2时,结束 } else { yueshu(abs(num1 - num2), min(num1, num2)); // 调用递归方法 } } // 求两个数绝对值 private int abs(int num) { return num > 0 ? num : -num; } // 求两个数较小者 private int min(int num1, int num2) { return num1 > num2 ? num2 : num1; } public static void main(String[] args) { 递归Test t = new 递归Test(); // 1,2,3...100 依次相加的结果 System.out.println(t.sum(100)); // 1*2*3*4...*n System.out.println(t.jiecheng(5)); // 两个数字的最大公约数 t.yueshu(13, 8); System.out.println(t.fib(4)); // 十进制数转换成二进制数 t.DecimalToBinary(9); System.out.println(); System.out.println(t.DecimalToBinary1(8)); } }
相关推荐
java递归小例子,供初学者学习使用。九九递归
Java 递归例子 Java 递归是指在 Java 编程语言中,使用递归函数来解决问题的方法。递归函数是指在函数体中调用自身的函数。Java 递归例子中提供了三个经典的递归例子:汉诺塔问题、斐波那契级数和最大公约数。 1. ...
Java递归读取文件例子 Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */
文档"Java递归算法.docx"可能包含了关于如何在实际代码中应用递归的例子,例如经典的Fibonacci序列计算、阶乘计算或者二分查找等。这些例子有助于理解递归的工作原理和如何在Java中实现它们。 "Java递归算法.pdf...
Java递归是编程中的一个重要概念,它是指在函数或方法的定义中...通过这些例子,我们可以看到Java递归在解决特定问题时的灵活性和实用性。然而,使用递归时需谨慎,确保理解和处理好递归的所有方面,以避免潜在的问题。
在这个例子中,递归调用`findFiles`会在到达文件系统中的最底层文件或目录时停止。当函数不再找到任何匹配的文件或目录,递归过程自然结束。 ### 关键知识点六:代码优化与改进 尽管当前实现有效,但可以从几个...
以上三个例子展示了递归在不同场景下的应用。递归可以使代码简洁、易于理解,但也可能导致效率问题,尤其是处理大数据量时。因此,在实际编程中,我们需要根据问题的特点选择合适的算法,并考虑优化,如使用记忆化...
递归的主体部分是 `tower(n-1,a,c,b)` 和 `tower(n-1,b,a,c)`,这两个调用分别表示将除最上面的盘子外的n-1个盘子从起始柱子移动到辅助柱子,然后将最上面的盘子移动到目标柱子,最后再将n-1个盘子从辅助柱子移动到...
在这个实例中,我们将深入探讨如何使用Java递归实现阶乘计算,并以1到10的数字为例进行演示。 阶乘是一个数学概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常表示为n!。例如,5的阶乘(5!)是5 × 4 × ...
一个简单的小例子递归实现list按照index排序的树
在这个例子中,factorial()方法是递归的。当传入参数 n 等于 0 时,方法返回 1。否则,方法返回 n 与 factorial(n-1)的乘积。这样,递归地计算阶乘,直到 n 等于 0 为止。 Java 递归算法是一个强大的工具,可以用于...
递归函数通常包含两个主要部分: - **基本情况**(Base Case):当问题规模足够小以至于可以直接解决时的情况。在这个例子中,当 `start` 等于 `end` 时,即表示只剩下一个元素未被处理,此时直接打印该元素即可...
### Java中的递归详解 #### 一、递归的基本概念 在Java编程语言中,递归是一种非常重要的算法思想和技术手段。递归是指一个方法直接或间接地调用自身的过程。这种自我调用的方式可以用来解决很多复杂的问题,并且...
这个"JAVA递归DEMO"可能是一个示例,演示了如何使用递归来遍历XML文档的所有元素。XML(可扩展标记语言)是用于存储和传输数据的标准化格式,而递归遍历则能有效地处理其层次结构。 首先,让我们了解递归的基本概念...
本篇介绍的全排列问题是递归应用的一个典型例子,通过这个例子我们可以看到递归如何有效地简化代码,同时也应注意递归可能带来的性能问题。在未来的学习和工作中,合理地使用递归将能帮助我们更好地解决问题。
### JAVA编程:递归典型题目解析 ...以上四个例子涵盖了递归在不同问题中的应用,从简单的数学运算到复杂的问题求解,递归都展现出了其独特的魅力。理解并掌握递归,对于提升编程技能和解决实际问题具有重要意义。
在Java编程中,递归是一种强大的技术,常用于解决复杂问题,例如数据结构的遍历、树形结构的绘制等。本示例中,我们利用Java递归来简单地画出一棵树,这是一个典型的图形用户界面(GUI)应用,通过NetBeans IDE实现...
【Java】求1-100范围内的素数递归方法代码例子。分享,感谢。
Java递归算法简单示例两则 Java递归算法是一种常用的算法设计方法,通过将问题分解为小问题,逐步解决,小问题的解决方法和大问题的解决方法相同,这样可以将复杂的问题简化为简单的问题。Java递归算法广泛应用于...
在Java编程中,递归是一种强大的技术,常用于解决复杂问题,例如遍历或搜索文件系统中的文件夹。本文将详细解析如何使用Java编写一个递归程序来搜索Windows文件夹,以及涉及到的相关知识点。 首先,我们需要理解...