習題10-5 遞歸計算Ackermenn函數(15 分)


本題要求實現Ackermenn函數的計算,其函數定義如下:

函數接口定義:

int Ack( int m, int n );

其中mn是用戶傳入的非負整數。函數Ack返回Ackermenn函數的相應值。題目保證輸入輸出都在長整型

范圍內。

裁判測試程序樣例:

#include <stdio.h>

int Ack( int m, int n );

int main()
{
    int m, n;

    scanf("%d %d", &m, &n);
    printf("%d\n", Ack(m, n));

    return 0;
}

/* 你的代碼將被嵌在這里 */

輸入樣例:

2 3

輸出樣例:

9
int Ack( int m, int n )
{
    if(m==0)
    return n+1;
    else 
    {
        if(n==0)
        return Ack(m-1,1);
        else
        return Ack(m-1,Ack(m,n-1));
    }
}
int Ack( int m, int n )
{
    if(m==0)
    return n+1;
    else if(n==0&&m>0)
    return Ack(m-1,1);
    else if(m>0&&n>0)
    return Ack(m-1,Ack(m,n-1));
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM