程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Ackerman 函數,ackerman函數

Ackerman 函數,ackerman函數

編輯:關於C語言

Ackerman 函數,ackerman函數


先留個簡介:

函數定義:

  從定義可以看出是一個遞歸函數。阿克曼函數不僅值增長的非常快,而且遞歸深度很高。

一般用來測試編譯其優化遞歸調用的能力。。

如果用一下代碼簡單實現的話,輸入參數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);
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved