c++ 判斷奇數偶數執行個體介紹

來源:互聯網
上載者:User

到目前為止,看到的遞迴函式都是直接調用自己。雖然大多數的遞迴函式都符合這一形式,但其實遞迴的定義更為廣泛,如果某個函數被細分成了幾個子函數,那麼可以在更深的嵌套層次上應用遞迴調用。例如:如果函數 f 調用函數 g ,而函數 g 反過來又調用函數 f ,這些函數的調用仍然被看作是遞迴。這種類型的 遞迴被成為互動遞迴
下面通過判斷一個數是偶數還是奇數來展示互動遞迴的應用,並且此題突出了遞迴跳躍的信任的重要性首先,先看奇數和偶數的描述:
如果一個數的前一個數是奇數,那麼該數是偶數
一個樹不是偶數就是奇數
定義0是偶數
遞迴跳躍的信任
從代碼可以看出,代碼的實現是完全基於上面奇數和偶數的描述的三點。初看,這是多麼的不可思議。如果想要探索其底層是如何?的,也只需用一個較少的數字代入,跟蹤調用驗證就OK
如單純地從表面看,單憑 “定義0是偶數” 這個簡單情景真的沒法看出這遞迴竟然能正確工作。所以,對於沒法一下子就能看出的這種情況,我們需要的就是遞迴跳躍的信任,只要我們遞迴分解正確和簡單情景分析正確,實現細節就不必去擔心,交給電腦。也因此,只要掌握了遞迴的思維,解決一個問題是多麼簡單和快捷,多麼令人震驚 複製代碼 代碼如下:#include <iostream>
using namespace std;
bool isodd(unsigned);
bool isodd(unsigned n)
{
return !(iseven(n));
}
bool iseven(unsigned n)
{
if (n == 0)
{
return true;
}
else
{
return isodd(n-1);
}
}
int main()
{
cout << isodd(11) << endl;
return 0;
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.