/**
* 时间:2010-02-07
* @author 朴海林
*
* 递归函数
*/
import java.io.*;
public class Recursive {
public static void main(String[] args) {
File f = new File("E:/Java Application");
viewFile(f, 0);
System.out.println(fibonacci(3));
System.out.println(method(10));
System.out.println(isHuiWen("aba"));
}
// 打印指定文件夹下的所有文件
// 参数是文件和文件的等级
private static void viewFile(File f, int level) {
String str = "";
File[] fs = f.listFiles();
for (int i = 0; i < fs.length; i++) {
str = "";
for (int j = 0; j < level; j++) {
str = str + " ";
}
System.out.println(str + fs[i].getName());
if (fs[i].isDirectory()) {
viewFile(fs[i], level + 1);
}
}
}
// Fibonacci,菲波拉契数列
private static int fibonacci(int f) {
if (f <= 0) {
return 0;
}
if (1 == f || 2 == f) {
return 1;
}else
{
return fibonacci(f - 1) + fibonacci(f - 2);
}
}
//计算n!
public static int method(int n) {
if (n == 1) {
return 1;
} else {
return n * (method(n - 1));
}
}
//计算回文
public static boolean isHuiWen(String s) {
if (s == null) {
return false;
}
if (s.length() == 0 || s.length() == 1) {
return true;
}
char first = s.charAt(0);
char last = s.charAt(s.length() - 1);
if (first != last) {
return false;
} else {
return isHuiWen(s.substring(1, s.length() - 1));
}
}
}
分享到:
相关推荐
基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx
本实验报告主要讲述了递归算法实践中的n皇后问题,旨在掌握堆栈这种数据结构的应用,实现递归,了解递归函数的执行过程、递归工作栈的相关概念与工作方式,掌握递归的概念、功用、解决问题的步骤与方式,并学会对几...
3. **递归的应用**:递归在多种算法中都有应用,如: - **分治算法**:如快速排序、归并排序等,它们将大问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解。 - **树和图的遍历**:如...
3. 非递归方法实现最大公约数的计算 ```c int gcd(int m, int n) { int c; do { c = m % n; m = n; n = c; } while (c != 0); return m; } ``` 4. 递归方法实现阶乘的计算 ```c int jc(int n) { if (n ==...
NOIP基础算法--枚举、递推和递归 很有用的哦,看看有好处的
**算法设计与实现-递归算法** 递归是一种强大的编程技术,它允许函数或子程序在解决问题时调用自身来解决规模更小的相同问题。递归算法在计算机科学中广泛应用,尤其在数据结构(如树和图的遍历)、搜索、排序等...
本项目“LUT算法与数据结构-- 递归替换和图书管理”聚焦于这两方面,通过递归替换算法和图书管理系统的设计,来提升问题解决能力。 首先,让我们探讨“递归替换”这一概念。递归是一种解决问题的方法,它将复杂的...
迷宫地图
二叉树
### 0-1 背包问题:递归算法 C语言实现 #### 一、问题背景及定义 0-1背包问题是一种经典的组合优化问题,在计算机科学与运筹学领域有着广泛的应用。该问题的基本形式如下:给定一组物品,每种物品都有自己的重量和...
递归算法是软件开发中一个看似令人畏惧的主题,但其实不必害怕。递归是指事物以其自身定义,代码调用自身,以及对象指向自身的映像,这些定义似乎暗示着无限和悖论。然而,掌握递归的关键在于不要将其视为无限的悖论...
递归算法和非递归算法 在计算机科学与编程领域中,递归算法与非递归算法是两种非常重要的计算方法。本文将详细介绍这两种算法的特点、应用场景以及如何实现它们,特别针对初学者及面试准备者。 #### 递归算法 ...
汉诺塔问题是一个经典的递归算法问题,它涉及到三个柱子(塔)和若干个大小不一的圆盘。在初始状态下,所有圆盘按照大小顺序堆叠在第一个柱子(1号塔)上,大的在下,小的在上。目标是将所有的圆盘从1号塔移动到2号...
【基础算法】-python递归求阶乘和阶乘:是指从1到n的连续自然数相乘的积。负数没有阶乘。递归:函数作为一种代码封装,除了被其他程序正常调用外,还可以被函数内部代码调用。函数定义中调用函数自身的方式称为递归...
3. **算法步骤**: - 初始化:创建两个栈,分别表示A和B柱子,将所有盘子放入A栈。 - 主循环:对于n个盘子,执行以下操作n次: - 将A栈顶部的n-1个盘子借助C栈移动到B栈。 - 将A栈顶部的盘子(第n个盘子)直接...
深入探讨博弈问题中的算法策略,特别是递归与循环在解决这些问题时的应用。本教程将引导学习者理解如何利用递归思维分解复杂问题,以及如何通过循环实现高效的算法迭代。同时,还将介绍随机算法在博弈论中的应用,...
数据结构用C++的实现,蓝桥杯,ACM,算法基础,C++入门
在VC++(Visual C++)环境中,有多种方法可以实现这一目标,其中最常见的是递归算法和非递归算法。这两种方法各有优缺点,适用于不同的场景。 **递归算法**: 递归算法是一种基于函数自身调用解决问题的方法。在...