zoukankan      html  css  js  c++  java
  • php之递归调用,递归创建目录

    /*
    递归自身调用自身,每次调用把问题简化,直到问题解决
    即:把大的任务拆成相同性质的多个小任务完成
    */
    /*
    function recsum($n){
    	if($n>1){
    		return $n + recsum($n-1);
    	}else{
    		return 1;
    	}
    
    }
    //递归调用
    echo recsum(10).'<br />';
    */
    
    //最先调用,最后返回
    //递归:一个函数,自身调用自身,必有终止条件
    
    function sum($n){
    	if($n>1){
    	echo $n.'<br />';
    	return sum($n-1)+$n;//1,3,6,10,15
    	
    	} else {
    		echo 1 .'<br />';
    		return 1;
    	}
    }
    
    echo sum(5);
    /*
    分析
    sum(1)=1
    sum(2)=sum(1)+2;
    sum(3)=sum(2)+3
    sum(4)=sum(3)+4
    sum(5)=sum(4)+5
    */
    


    递归创建目录

    <?php
    /*
    递归创建目录
    
    */
    /*第一种方法
    function mk_dir($path) {
    	//
    	if(is_dir($path)) {
    		//
    		return true;
    	}
    	//目录的父目录存在
    	if (is_dir(dirname($path))) {
    		# code...
    		return mkdir($path);
    	}
    	//父目录不存在,创建父目录
    	mk_dir(dirname($path));
    	return mkdir($path);
    }	
    
    echo mk_dir("d:/a/ac/d/g/d/")?'ok':'fail';
    */
    
    //第二种方法
    function mk_dir($path){
    	//如果目录已经存在,直接返回
    	if (is_dir($path)) {
    		# code...
    		return true;
    	}
    	//如果目录不存在,创建
    	//父目录不一定存在,
    	return is_dir(dirname($path)) || mk_dir(dirname($path))?mkdir($path):false;
    }
    echo mk_dir('./a/n/d/c')?'ok':'fail';
    
    ?>
  • 相关阅读:
    hdu 5146 Sequence
    hdu 1232 畅通工程
    hdu 1213 How Many Tables
    hdu 2822 Dogs
    hdu 1242 Rescue
    hdu 5101 Select
    hdu 1873 看病要排队
    hdu 5112 A Curious Matt
    hdu 5154 Harry and Magical Computer
    hdu 1548 A strange lift
  • 原文地址:https://www.cnblogs.com/wang1204/p/5570005.html
Copyright © 2011-2022 走看看