#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なはず。
ちゃんと再帰を使ってるしね。
公立大学経済学部の力を見たカー!