
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条)