wordpress CMS主题 微信
Home > 网站建设 > 什麽是遞歸函數?

什麽是遞歸函數?

高时银博客 网站建设 点击: 1,546 次 0 0
  • 标签: |
  • 所謂遞歸函數,就是自調用函數,在函數體內直接或間接自己調用自己。但遞歸函數自調用時需要設置自調用的條件,若滿足條件,則調用函數本身,若不滿足則終止本函數的自調用,然後把目前流程的主控權交回給上壹層函數來執行。下面,通過壹個實例來了解壹下這種函數。

    <?phpfunction table($a){echo $a." ";if($a>0)  //自调用的条件

    {

    table($a-1);  //自调用时变量的值减1

    }

    else

    {

    echo "<-->";

    }

    echo $a." ";

    }

     

    table(10);

    ?>

    輸出的結果是:10 9 8 7 6 5 4 3 2 1 0 <--> 0 1 2 3 4 5 6 7 8 9 10

    大家可能有點迷惑,前面的10 9 8 7 6 5 4 3 2 1 0可以很好理解,但後面的0 1 2 3 4 5 6 7 8 9 10是怎麽來的呢?這是因為在每次自調用時,自調用後面的echo $a."";沒有執行,它會從最後壹個自調用結束後才開始1個1個地來運算顯示,直到第1個自調用時才結束。最後壹個自調用,即$a=1時,這樣壹來,table($a-1)自調用後$a的值就成為0了;以此類推,倒數第2個自調用,$a=2,也就輸出了1……直到第1個自調用。

    下面是通過遞歸函數計算5的階乘

    <?phpfunction demo($a){

    if($a > 1)

    $r=$a*demo($a-1);

    else

    $r=$a;

    return $r;

    }

    echo demo(5);

    ?>

    輸出的結果是:120(即1*2*3*4*5的結果)。


    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201404061862.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    目前还没有评论。赶快来坐沙发吧。

    发表评论