我写过这段代码,我不太确定它是否运作良好。 例如,如果我一次只能向上或向上一个,那么从(0,0)到(2,2)有多少条路径?
我的代码:
int paths(int x,int y) {
if (0==x || 0==y) {
return 1;
}
return paths(x-1,y) + paths(x,y-1);
}
答案 0 :(得分:1)
你在那里有趣的功能,我会抓住这个,也许你可以把类似的东西
printf("(x-1,y)=(%d,%d)",x-1,y);
printf(" (x,y-1)=(%d,%d)\n",x,y-1);
在paths
函数中,以便更好地观察笛卡尔平面中发生的情况。打印类似:
(x-1,y)=(1,2) (x,y-1)=(2,1)
(x-1,y)=(0,2) (x,y-1)=(1,1)
(x-1,y)=(0,1) (x,y-1)=(1,0)
(x-1,y)=(1,1) (x,y-1)=(2,0)
(x-1,y)=(0,1) (x,y-1)=(1,0)
paths=6