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

/Go言語学習帳/03_Ackermann の差分

N2Wiki > Go言語学習帳 > 03_Ackermann
ページに戻る
- #start
+ #start Ackernann関数
  #?anch -e
- **** 内容が未設定のページです
- ブラウザの「戻る」で前のページに戻ってください。
- または[[編集|EDIT]]のリンクをクリックして内容を入力してください。
+ 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がない」と叱られる。
+ >|
  #end
»