(C)
#包括<stdio.h>//GCC-O3
字符网格[4][4];
长-长尺寸;
long-long calc_ways(long-longx、long-long-y、long-lengz){
long-long n;
如果(网格[x][y][z])返回0;
如果(x+y+z==尺寸*3-3)返回1;
网格[x][y][z]=1;
n=0;
如果(x>0)n=calc_ways(x-1,y,z);//向左走
如果(x<SIZE-1)n+=calc_ways(x+1,y,z);//正确的
如果(y>0)n+=calc_ways(x,y-1,z);//向下
如果(y<SIZE-1)n+=calc_ways(x,y+1,z);//向上的
如果(z>0)n+=calc_ways(x,y,z-1);//水平下降
如果(z<SIZE-1)n+=calc_ways(x,y,z+1);//调平
网格[x][y][z]=0;
返回n;
}
整型main()
{
用于(尺寸=1;尺寸<=4;++尺寸){
整数x,y,z;
memset(网格,0,sizeof(网格));
对于(x=1;x<SIZE-1;++x)
对于(y=1;y<SIZE-1;++y)
对于(z=1;z<SIZE-1;++z)
网格[x][y][z]=1;
printf(“%llu,”,calc_ways(0,0,0));
}
}
|