図のようにx,yの方向へ、上、斜め、右方向に進めます。戻ることは出来ません。
この(0,0)からx,yまでの全ての経路を知りたいのですが、なかなか思うように結果が出ません・・。
例えば(0,0)から(2,2)までの経路であった場合
経路1
(0,0) -> (1,0) -> (2,0) -> (2,1) -> (2,2)
経路2
(0,0) -> (1,0) -> (1,1) -> (2,2)
とかこういう感じで全通り出したいのですが・・。
再帰関数を使って若干作ってみたもののうまくいきません・・。
一応こんな感じです。
#include <stdio.h>
#include <string.h>
int len_a=2,len_b=2;
void serch(int ia,int ib){
int i;
printf("(%d,%d)\n",ia,ib);
for(i=0;i<3;i++){
if(i==0 && ia<len_a)
ia++;
else if(i==1 && ia<len_a && ib<len_b)
ia++ , ib++;
else if(i==2 && ib<len_b)
ib++;
else
continue;
serch(ia,ib);
}
}
int main(){
serch(0,0);
return 0;
}
すみませんが、おわかりになるかたご指導よろしくお願いします。