Bảng tra cứu đã được đề cập trong các ý kiến. Có hai cách tiếp cận.
Nhanh
Tạo một bảng dài 256 byte, với mỗi giá trị tiếp theo là căn bậc hai của chỉ mục tương ứng. Điều này rất nhanh vì bạn sử dụng đối số làm chỉ mục để truy cập trực tiếp vào giá trị đúng. Hạn chế là nó cần một bảng dài, với nhiều giá trị trùng lặp.
Nhỏ gọn
Như đã nói, một số nguyên 8 bit chỉ có thể có các giá trị từ 0 đến 255 và các căn bậc hai tương ứng là 0 đến 16 (làm tròn). Xây dựng bảng nhập 16 (dựa trên zero) với mục nhập thứ n giá trị tối đa cho đối số mà căn bậc hai là n. Bảng sẽ trông như thế này:
0
2
6
12
20
etc.
Bạn đi qua bảng và dừng lại khi bạn gặp một giá trị lớn hơn hoặc bằng với đối số của bạn. Ví dụ: căn bậc hai của 18
set index to 0
value[0] = 0, is less than 18, go to the next entry
value[1] = 2, is less than 18, go to the next entry
value[2] = 6, is less than 18, go to the next entry
value[3] = 12, is less than 18, go to the next entry
value[4] = 20, is greater than or equal to 18, so sqrt(18) = 4
Mặc dù bảng tra cứu nhanh có thời gian thực hiện cố định (chỉ một lần tra cứu), ở đây thời gian thực hiện dài hơn đối với các đối số có giá trị cao hơn.
Đối với cả hai phương pháp, bằng cách chọn các giá trị khác nhau cho bảng, bạn có thể chọn giữa giá trị làm tròn hoặc giá trị rút gọn cho căn bậc hai.