码迷,mamicode.com
首页 > 编程语言 > 详细

Java中方法递归与File例题

时间:2018-05-17 18:51:11      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:方法递归   File类   不死神兔   递归删除文件   输出文件后缀名固定的文件绝对路径   

1、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?(不死神兔)
(1)数组方式

package 递归.作业;

public class TuziArray {
    public static void main(String[] args) {  
         //定义数组
         int arr[] = new int[100];  
         int m=20;      
         arr[1] = 1;//前两个月兔子数量为1只  
         arr[2] = 1;  
         arr[3] = 2;           
         for(int i=1;i<=m;i++){  
            if(i>=3){    
                //规律为:斐波那契数列规律  
                arr[i] = arr[i-1] +arr[i-2];  
             }  
         }   
         System.out.println("第20个月的兔子对数为:"+arr[20]); 
     }
}

(2)递归方式

package 递归.作业;

public class Tuzi {
    public static void main(String[] args) {
        // 調用rabbit()方法
        int rabbit = rabbit(20);
        System.out.println("第20个月的兔子对数为: " + rabbit);
    }

    public static int rabbit(int mouth) {
        // 前兩個月只有一對兔子
        if (mouth == 1 || mouth == 2) {
            return 1;
        }
        // 上一个月的兔子数
        int rabbit1 = rabbit(mouth - 1);
        // 上一个月的前一个月兔子数
        int rabbit2 = rabbit(mouth - 2);
        // 斐波那契額函數
        return rabbit1 + rabbit2;
    }
}

2、需求:递归删除带内容的目录
假设项目路径下有一个demo文件夹里面又有一些文件夹和一些文件,请使用递归思路进行实现。

package 递归.作业;

import java.io.File;

public class FileDiGui2 {
    public static void main(String[] args) {    
        // 封装File对象  
        File demo = new File("demo");  
        // 调用递归删除方法  
        deleteFile(demo);  
    }     
    // 方法递归:删除  
    public static void deleteFile(File demo) {  
        // 获取该文件夹下的文件或文件夹路径名数组  
        File[] demoFile = demo.listFiles();  
        // 非空判断  
        if (demoFile != null) {  
             // 遍历demofile数组对象  
             for (File file : demoFile) {  
                   // 判断file里面的对象是不是标准文件,如果是则递归调用该方法进行继续判断  
                   if (file.isFile()) {  
                       deleteFile(file);  
                   } else {// 否则是一个文件夹,执行输出文件名,并删除  
                        System.out.println(file.getName() + "---" + file.delete());  
                   }  
              }  
         }  
    }   
}

3、需求:请把E:\JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台。

package File类.作业;

import java.io.File;

public class OutputE {
    public static void main(String[] args) {  
        // 创建文件对象  ,指向E:\\JavaSE
        File file = new File("E:\\JavaSE");  
        // 获取file对象内的文件/文件夹路径名数组  
        File[] files = file.listFiles();  
        // 遍历files数组
        for (File f : files) {  
            // 获取f对象文件名,判断是否以".java"结尾,如果是输出路径名  
            if (f.getName().endsWith(".java"))  
            System.out.println(f);  
        }  
   }  
}

Java中方法递归与File例题

标签:方法递归   File类   不死神兔   递归删除文件   输出文件后缀名固定的文件绝对路径   

原文地址:http://blog.51cto.com/13678728/2117624

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!