c++ 判斷奇數(shù)偶數(shù)實(shí)例介紹
更新時(shí)間:2012年11月26日 16:17:28 作者:
下面通過判斷一個(gè)數(shù)是偶數(shù)還是奇數(shù)來展示交互遞歸的應(yīng)用,并且此題突出了遞歸跳躍的信任的重要性,需要的朋友可以參考下
到目前為止,看到的遞歸函數(shù)都是直接調(diào)用自己。雖然大多數(shù)的遞歸函數(shù)都符合這一形式,但其實(shí)遞歸的定義更為廣泛,如果某個(gè)函數(shù)被細(xì)分成了幾個(gè)子函數(shù),那么可以在更深的嵌套層次上應(yīng)用遞歸調(diào)用。例如:如果函數(shù) f 調(diào)用函數(shù) g ,而函數(shù) g 反過來又調(diào)用函數(shù) f ,這些函數(shù)的調(diào)用仍然被看作是遞歸。這種類型的遞歸被成為交互遞歸
下面通過判斷一個(gè)數(shù)是偶數(shù)還是奇數(shù)來展示交互遞歸的應(yīng)用,并且此題突出了遞歸跳躍的信任的重要性首先,先看奇數(shù)和偶數(shù)的描述:
如果一個(gè)數(shù)的前一個(gè)數(shù)是奇數(shù),那么該數(shù)是偶數(shù)
一個(gè)樹不是偶數(shù)就是奇數(shù)
定義0是偶數(shù)
遞歸跳躍的信任
從代碼可以看出,代碼的實(shí)現(xiàn)是完全基于上面奇數(shù)和偶數(shù)的描述的三點(diǎn)。初看,這是多么的不可思議。如果想要探索其底層是如何實(shí)現(xiàn)的,也只需用一個(gè)較少的數(shù)字代入,跟蹤調(diào)用驗(yàn)證就OK
如單純地從表面看,單憑 “定義0是偶數(shù)” 這個(gè)簡單情景真的沒法看出這遞歸竟然能正確工作。所以,對(duì)于沒法一下子就能看出的這種情況,我們需要的就是遞歸跳躍的信任,只要我們遞歸分解正確和簡單情景分析正確,實(shí)現(xiàn)細(xì)節(jié)就不必去擔(dān)心,交給計(jì)算機(jī)。也因此,只要掌握了遞歸的思維,解決一個(gè)問題是多么簡單和快捷,多么令人震驚
#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;
}
下面通過判斷一個(gè)數(shù)是偶數(shù)還是奇數(shù)來展示交互遞歸的應(yīng)用,并且此題突出了遞歸跳躍的信任的重要性首先,先看奇數(shù)和偶數(shù)的描述:
如果一個(gè)數(shù)的前一個(gè)數(shù)是奇數(shù),那么該數(shù)是偶數(shù)
一個(gè)樹不是偶數(shù)就是奇數(shù)
定義0是偶數(shù)
遞歸跳躍的信任
從代碼可以看出,代碼的實(shí)現(xiàn)是完全基于上面奇數(shù)和偶數(shù)的描述的三點(diǎn)。初看,這是多么的不可思議。如果想要探索其底層是如何實(shí)現(xiàn)的,也只需用一個(gè)較少的數(shù)字代入,跟蹤調(diào)用驗(yàn)證就OK
如單純地從表面看,單憑 “定義0是偶數(shù)” 這個(gè)簡單情景真的沒法看出這遞歸竟然能正確工作。所以,對(duì)于沒法一下子就能看出的這種情況,我們需要的就是遞歸跳躍的信任,只要我們遞歸分解正確和簡單情景分析正確,實(shí)現(xiàn)細(xì)節(jié)就不必去擔(dān)心,交給計(jì)算機(jī)。也因此,只要掌握了遞歸的思維,解決一個(gè)問題是多么簡單和快捷,多么令人震驚
復(fù)制代碼 代碼如下:
#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;
}
相關(guān)文章
C++中的運(yùn)算符和運(yùn)算符優(yōu)先級(jí)總結(jié)
這篇文章主要介紹了C++中的運(yùn)算符和運(yùn)算符優(yōu)先級(jí)總結(jié),主要整理了算術(shù)、關(guān)系、邏輯、位和賦值運(yùn)算符的用法,需要的朋友可以參考下2016-05-05
基于Linux系統(tǒng)調(diào)用--getrlimit()與setrlimit()函數(shù)的方法
本篇文章是對(duì)在Linux系統(tǒng)中調(diào)用getrlimit()與setrlimit()函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
MFC中動(dòng)態(tài)創(chuàng)建控件以及事件響應(yīng)實(shí)現(xiàn)方法
這篇文章主要介紹了MFC中動(dòng)態(tài)創(chuàng)建控件以及事件響應(yīng)實(shí)現(xiàn)方法,詳細(xì)講解了MFC中動(dòng)態(tài)創(chuàng)建控件以及事件響應(yīng)的概念與實(shí)現(xiàn)方法,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10

