表紙 編集 差分 一覧 最近 短縮 付箋 ログイン 凍結中

Ackernann関数

N2Wiki > Go言語学習帳 > 03_Ackermann

Ackermann

package main
import "fmt"

func main() {
    fmt.Printf("ack(3,9): %d \n",ack(3,9));
}

func ack(m, n int) int {
    switch {
        case m == 0: return n+1;
        case n == 0: return ack(m-1, 1);
    }
    return ack(m-1, ack(m, n-1));
}
  • default: return ack(m-1, ack(m, n-1)); と書くと「returnがない」と叱られる。