黑马JAVA P156 非规律化递归问题:文件搜索、啤酒问题

黑马JAVA P156 非规律化递归问题:文件搜索、啤酒问题,第1张

黑马JAVA P156 非规律化递归问题:文件搜索、啤酒问题

 

 

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);
        }
    }
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5710270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存