C/C++の宿題を片付けます 104代目at TECH
C/C++の宿題を片付けます 104代目 - 暇つぶし2ch70:66
08/02/08 17:02:37
がーん、ソース貼られてたw しかも、m=2についても解いてあるし。

>>67
>呼び出し回数は大して減らないって?
だから、>54の問題にあるようなキャッシュについてですがな。
m=1について解いてしまえば早くなりましたがな。

癪だから以下に。
--
#include <stdio.h>
#include <stdlib.h>
// #include <stdbool.h>

static int ack(unsigned m, unsigned n)
{
// static int a[4][16];
// bool inRange = m < sizeof(a) / sizeof(* a) && n < sizeof(* a) / sizeof(** a);
int val;
// if (inRange && a[m][n] != 0) return a[m][n];
if (m == 0) {
val = n + 1;
} else if (m == 1) { // short cut for ack(1, n)
val = n + 2; // ack(1, n) -> ack(0, ack(1, n-1)) -> ack(1, n-1) + 1
} else if (n == 0) {
val = ack(m - 1, 1);
} else {
val = ack(m - 1, ack(m, n - 1));
}
// if (inRange) a[m][n] = val;
return val;
}
コメント部分を生かせばキャッシュされるけど、最早どうでもいいなぁw


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch