THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 57

}

return

frabjuousFlag;

}

Bài t p 5

Kho ng cách gi a hai đi m (

x

1

, y

1

) và (x

2

, y

2

) thì b ng

Distance =


————————————
(x

2

− x

1

)

2

+(y

2

− y

1

)

2

Hãy vi t m t ph

ng th c có tên

ế

ươ

distance đ nh n các tham s g m b n s ph y đ ng—

ố ồ

ố ố

x1, y1, x2 và y2

—r i in ra kho ng cách gi a hai đi m này. B n c n gi s r ng đã có m t ph

ng th c

ạ ầ

ả ử ằ

ươ

ứ sumSquares đ

tính và tr l i t ng các bình ph

ng c a đ i s . Ch ng h n dòng l nh:

ả ạ ổ

ươ

ố ố

double

x = sumSquares(3.0, 4.0);

s gán giá tr

ị 25.0 cho x.

M c đích c a bài t p này là nh m vi t m t ph

ng th c m i có áp d ng ph

ng th c s n có. B n ch

ế

ươ

ươ

ứ ẵ

c n vi t m t ph

ng th c:

ế

ươ

ứ distance. B n không đ c vi t

ượ

ế sumSquares hay main và cũng không kích

ho t

ạ distance.

Bài t p 6

M c đích c a bài t p này là dùng bi u đ ngăn x p đ hi u đ

c trình t th c hi n m t

ế

ể ể

ượ

ự ự

ch

ng trình đ quy.

ươ

public class

Prod {

public static void

main(String[] args) {

System.out.println(prod(1, 4));

}

public static int

prod(

int

m,

int

n) {

if

(m == n) {

return

n;

}

else

{

int

recurse = prod(m, n-1);

int

result = n * recurse;

return

result;

}

}

}

1.

Hãy v m t bi u đ ngăn x p cho th y tr ng thái c a ch

ng trình ngay tr

c khi th c th cu i cùng

ẽ ộ

ế

ươ

ướ

ể ố

c a

ủ prod hoàn t t th c thi. K t qu c a ch ng trình này là gì?

ế

ả ủ

ươ

2.

Gi i thích ng n g n xem

prod làm vi c gì.

3.

Vi t l i

ế ạ prod mà không dùng đ n các bi n t m

ế

ế ạ recurse và result.

Bài t p 7

M c đích c a bài t p này là chuy n t m t l i đ nh nghĩa đ quy sang m t ph

ng th c

ể ừ ộ ờ ị

ươ

Java. Hàm Ackerman đ

c đ nh nghĩa cho s nguyên không âm nh sau:

ượ ị

ư