[PTA]习题10-5 递归计算Ackermenn函数

Posted Spring-_-Bear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PTA]习题10-5 递归计算Ackermenn函数相关的知识,希望对你有一定的参考价值。

[PTA]习题10-5 递归计算Ackermenn函数

本题要求实现Ackermenn函数的计算,其函数定义如下:

在这里插入图片描述

函数接口定义:
int Ack( int m, int n );
其中m和n是用户传入的非负整数。函数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

  • 提交结果:

在这里插入图片描述

  • 源码:
#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;
}

/* 你的代码将被嵌在这里 */
int Ack(int m, int n)
{
    if (m == 0)
    {
        return n + 1;
    }
    else if (m > 0 && n == 0)
    {
        return Ack(m - 1, 1);
    }
    else if (m > 0 && n > 0)
    {
        return Ack(m - 1, Ack(m, n - 1));
    }
}

以上是关于[PTA]习题10-5 递归计算Ackermenn函数的主要内容,如果未能解决你的问题,请参考以下文章

6-2 递归计算Ackermenn函数 (15 分)

递归计算Ackermenn函数

[PTA]习题10-2 递归求阶乘和

[PTA]习题10-4 递归求简单交错幂级数的部分和

[PTA]习题10-8 递归实现顺序输出整数

[PTA]习题10-6 递归求Fabonacci数列