// created by baicai on 14-5-10.
// 遞迴問題
/* 遞迴中兩個重要的點 : 1.遞迴公式 2.終止條件 */
/* 函式的區域性變數存在棧中,可能會棧溢位,所以可以考慮使用全域性陣列,或者動態分配陣列 */
/* 遊戲問題: 類似迷宮求解,自相似性表現在每走一步的探測方式相同,可以用遞迴方法求解,
通過列舉出所有從起點到終點的路徑
*/// 需要乙個記錄
// 方向陣列 to[4][2] = ,,,};
/* for(int i=0;i<4;i++)
int x = now_x + to[i][0];
int y = now_y + to[i][1];
f = i; // 方向
限制:邊界
(x > -1) && x<( w+2) && (y>-1) && (y< h+2)
有沒有遊戲卡片曾走過
((board[y][x] == ' ') && ( mark[y][x] == false ))
已經到達終點
(x == end_x) && (y == end_y) && (borad[y][x] == 'x')
終止條件: t1&&(t2||t3)
*/#include #include #include using namespace std;
int w;
int h;
int board[77][77];
int to[4][2] = ,,,}; // 東南西北
bool mark[77][77]; // 標記是否走過
int minstep;
int count;
void search(int x,int y,int x_end,int y_end,int f,int step)
if (x == x_end && y == y_end)
}// 列舉搜尋方向
for (int i = 0; i < 4; i++)
++boardnum;
printf("board #%d:\n",boardnum);
int i,j;
for (i = 0; i < (w+2); i++)
for (i = 1 ; i<=h; i++)
}for (i=0; i<=w; i++)
int begin_x,begin_y,end_x,end_y,count = 0;
while (cin>>begin_x>>begin_y>>end_x>>end_y) // 少了一些條件語句
else
cout<<"impossibe"<}
cout<}
return 0;
}
java遞迴的乙個問題
據說比達格斯理論家,又稱一群在必達格斯領導下工作的古希臘數學家,發現在數字序列 1,3,6,10,15,21 中有奇怪的聯絡 這個數列中第n項由第n 1項加n得到的。效率問題 呼叫乙個方法會有一定的額外開銷。控制必須從這個呼叫的位子轉移到這個方法的開始處。除次之外,傳給這個方法的引數以及 這個方法返...
乙個遞迴演算法
要求實現1,1,2,3,5,8,13,21,這樣乙個序列。分析一下輸出結果 發現後乙個數字是前2個數字的和。遞迴演算法如下 public static int recursion int i if i 0 return 0 else if i 0 i 2 return 1 else return r...
java 遞迴的乙個問題記錄
問題 第一行是乙個數字n 接下來m個數字在陣列a中 要求輸出對應下標使去掉這些數字時剩下的數字之和為n 例如 3 2 4 3 1 此時,程式輸出 0 20 3 4 1 2 4 2 3 如下 public class main public static void main string args b...