- 31 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 07:50:44 ]
- #include <stdio.h>
int W(int x ,int y); int a[9][9] ={ {1,1,1,1,1,1,1,0,1}, {1,0,0,0,0,0,0,0,1}, {1,0,1,0,1,1,1,0,1}, {1,0,1,0,0,0,1,0,1}, {1,0,1,1,1,0,1,0,1}, {1,0,1,0,0,0,1,0,1}, {1,1,1,0,1,1,1,0,1}, {1,0,0,0,1,0,0,0,1}, {1,0,1,1,1,1,1,1,1} }; int main (void){ int hoge = 0; hoge = W(1,1); printf("%d¥n",hoge); } int W(int x, int y){ if(a[x][y]) return 0; a[x][y] = 1; return W(x,y-1)+W(x,y+1)+W(x-1,y)+W(x+1,y)+1; } C言語だけれど、できたじぇー。 コレをLISPに改造していけばOKなはず。 ちゃんと再帰を使ってるしね。 公立大学経済学部の力を見たカー!
|

|