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

int

y = box.y + box.height/2;

return new

Point(x, y);

}

public static void

main(String[] args) {

Rectangle box1 =

new

Rectangle(2, 4, 7, 9);

Point p1 = findCenter(box1);

printPoint(p1);

box1.grow(1, 1);

Point p2 = findCenter(box1);

printPoint(p2);

}

Bài t p 4

Đ n gi có th b n đang t

ng t v ph

ng th c giai th a, nh ng ta s vi t thêm m t d ng

ế

ể ạ

ươ

ư ề

ươ

ư

ẽ ế

ộ ạ

m i.

1.

Hãy t o m t ch

ng trình m i có tên

ươ

Big.java r i vi t m t d ng l p cho

ế

ộ ạ

factorial.

2. In ra m t b ng các s nguyên ch y t 0 đ n 30 cùng v i giai th a c a chúng. t m kho ng 15, có th

ộ ả

ạ ừ

ế

ừ ủ

Ở ầ

b n s th y k t qu không còn đúng n a. T i sao v y?

ạ ẽ ấ ế

3.

BigIntegers là các đ i t

ng Java v i kh năng bi u di n nh ng s nguyên l n tùy ý. Không có gi i h n

ố ượ

ớ ạ

trên nào tr gi i h n kích th

c b nh và t c đ x lý. Hãy đ c tài li u v BigIntegers

ừ ớ ạ

ướ ộ

ố ộ ử

athttp://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html.

4.

Đ dùng đ

c BigIntegers, b n ph i thêm dòng

ượ

import java.math.BigInteger vào đ u ch

ng trình c a

ươ

b n.

5.

Có vài cách t o nên m t BigInteger, nh ng tôi khuyên b n cách dùng

ư

valueOf. Đo n mã sau chuy n đ i

m t s nguyên thành

ộ ố

BigInteger:

int

x = 17;

BigInteger big = BigInteger.valueOf(x);

Hãy gõ đo n mã l nh này r i ch y th . C g ng in ra m t BigInteger.

ử ố ắ

6.

Vì BigIntegers không ph i là ki u nguyên th y nên các toán t toán h c thông th

ng không th thao

ườ

tác v i chúng. Thay vào đó, ta ph i dùng nh ng ph

ng th c nh

ươ

ư add. Đ c ng hai BigInteger, hãy kích

ể ộ

ho t

ạ add lên m t s r i truy n s kia làm đ i s . Ch ng h n:

ộ ố ồ

ề ố

ố ố

BigInteger small = BigInteger.valueOf(17);

BigInteger big = BigInteger.valueOf(1700000000);

BigInteger total = small.add(big);

Hãy th m t s ph

ng th c khác, nh

ử ộ ố

ươ

ư multiply và pow.

7.

Chuy n đ i

ổ factorial sao cho nó tính toán v i BigInteger r i tr l i k t qu cũng là m t BigInteger. B n

ả ạ ế

có th m c k tham s —nó v n s là m t s nguyên.

ể ặ ệ

ẫ ẽ

ộ ố

8. Hãy th in l i b ng b ng ph

ng th c giai th a mà b n v a s a đ i. Li u nó có đúng đ n 30 không?

ạ ả

ươ

ừ ử

ế

B n có th làm cho nó l n đ n bao nhiêu? Tôi đã tính giai th a c a t t c các s t 0 đ n 999, nh ng vì

ế

ừ ủ ấ ả

ố ừ

ế

ư

máy tính c a tôi khá ch m nên m t m t lúc. S cu i cùng, 999!, có t i 2565 ch s .

ố ố

ữ ố

Bài t p 5

Nhi u kĩ thu t mã hóa ph thu c vào kh năng nâng các s nguyên l n lên nh ng lũy th a

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.