Ackerman 函数

2018-06-18 04:17:14来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

先留个简介:

函数定义:

  从定义可以看出是一个递归函数。阿克曼函数不仅值增长的非常快,而且递归深度很高。

一般用来测试编译其优化递归调用的能力。。

如果用一下代码简单实现的话,输入参数4,2程序就直接奔溃了,(复杂度太大)

#include <stdio.h>
int ackerman (int m, int n) {
    int i, tmp;
    if (m == 0) return n+1;
    if (n == 0 && m > 0) return ackerman (--m, 1);
    if (n > 0 && m > 0 ) {
        return ackerman (m-1,ackerman(m, n-1));
        }
    return 0;
}

int main() {
    int m, n, acker;
    scanf("%d %d", &m,&n);
    acker = ackerman(m, n);
    printf ("%d", acker);
}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:一个实用的从文本文件读取数据进行排序的程序

下一篇:Socket_Internet 命名空间