package com.itheima.d2_recusion; import com.sun.jndi.toolkit.dir.SearchFilter; import java.io.File; import java.io.IOException; public class RecursionDemo05 { public static void main(String[] args) { //2.传入目录 和 文件名称 searchFile(new File("D:/"),"360se.exe"); } public static void searchFile(File dir , String fileName){ //3.判断dir是否是目录 if(dir != null && dir.isDirectory()){ //可以找了 //4.提取当前目录下的一级文件对象 File[] files = dir.listFiles(); // null [] //5.判断是否存在一级文件对象,存在才可以遍历 if(files != null && files.length > 0){ for (File file : files) { //判断当前遍历的一级文件对象是文件 还是目录 if(file.isFile()){ //7.是不是咱们要找的,是把其路径输出即可 if(file.getName().contains(fileName)){ System.out.println("找到了:" + file.getAbsolutePath()); //启动它。 try { Runtime r = Runtime.getRuntime(); r.exec(file.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } }else{ //8.是文件夹,需要继续递归寻找 searchFile(file, fileName); } } } }else{ System.out.println("对不起,当前搜索的位置不是文件夹!"); } } }
package com.itheima.d2_recusion; public class RecursionDemo06 { //定义一个静态的成员变量用于存储可以买的酒数量 public static int totalNumber;//总数量 public static int lastBottleNumber; //记录每次剩余的瓶子个数 public static int lastCoverNumber; //记录每次剩余的盖子个数 public static void main(String[] args) { //1.拿钱买酒 buy(10); System.out.println("总数:" + totalNumber); System.out.println("剩余盖子数:" + lastCoverNumber); System.out.println("剩余瓶子数:" + lastBottleNumber); } public static void buy(int money){ //2.看可以立马买多少瓶 int buyNumber = money / 2 ; //5 totalNumber += buyNumber; //3.把盖子 和瓶子换算成钱 //统计本轮总的盖子数 和 瓶子数 int coverNumber = lastCoverNumber + buyNumber; int bottleNumber = lastBottleNumber + buyNumber; //统计可以换算的钱 int allMoney = 0; if(coverNumber >= 4){ allMoney += (coverNumber / 4) * 2; } lastCoverNumber = coverNumber % 4; if(bottleNumber >= 2){ allMoney += (bottleNumber / 2) * 2; } lastBottleNumber = bottleNumber % 2; if(allMoney >= 2){ buy(allMoney); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)