PDA

View Full Version : Biểu diễn thuật toán đệ quy bằng sơ đồ khối



tunguyenlam
17-05-2010, 18:06
Chào các bạn, đây là sơ đồ khối của thuật toán tìm max trong dãy
http://img-photo.apps.zing.vn/upload/original/2010/05/17/17/1274093752543903925_574_574.jpg

Nhưng mình không biết làm cách nào để vẽ sơ đồ khối cho thuật toán tháp Hà Nội, bạn nào có thể giúp mình với !!!

Chương trình mình hiện thực bằng java:

package tunl;

public class TowersApp {
static int n = 3;

public static void main(String[] args) {
TowersApp.doTowers(3, 'A', 'B', 'C');
}

public static void doTowers(int n, char from, char inter, char to) {

if (n == 1) {
System.out.println("disk 1 from "+ from + " to " + to);
} else {
doTowers(n-1, from, to, inter);
System.out.println("disk " + n + " from " + from + " to " + to);
doTowers(n-1, inter, from, to);
}

}

}

manh_kqha
26-05-2010, 08:21
Bài toán Tháp Hà Nội, để vẽ sơ đồ khối thì hơi khó, tất nhiên vẽ cũng vẽ được. Trong mỗi bước lặp thì các định danh "from", "to" của bạn thay đổi, Nếu bạn muốn chuyển n đĩa từ A sang B với trung gian là C thì bạn phải chuyển n-1 đĩa từ A sang C với trung gian là B và chuyển n-1 đĩa từ C sang B với trung gian là A. Như vậy mỗi bước đệ quy của bạn các định danh thay đổi nên hơi khó xác định thôi. Bạn hãy tập trung, khi vẽ thì hãy thêm các bước trung gian nhé! Goodluck! Dear!

kendy7789
27-09-2010, 09:26
mình đang cần tìm thuật toán đệ quy cho bài tìm số lớn nhất trong dãy N. bạn nao biết có thể giúp mình với.cảm ơn nhiều

qvluom
28-09-2010, 12:42
viết chơi thôi nha. không biết đúng ý bạn cần không

function max(i:integer):real;
var x:real;
begin
if i=1 then max:=a[1] else
x:=max(i-1);
if x> a[i] then max:=x else max:=a[i];
end;

chương trình chính:
nếu muốn tìm giá trị lớn nhất ta gọi
m:= max(n);