У коментарях згадуються таблиці пошуку. Є два підходи.
Швидко
Створіть довгу таблицю на 256 байт, при кожному наступному значенні - квадратний корінь відповідного індексу. Це швидко, оскільки ви використовуєте аргумент як індекс для прямого доступу до потрібного значення. Недолік полягає в тому, що йому потрібна довга таблиця з великою кількістю повторюваних значень.
Як сказано компактно , 8-бітове ціле число може мати значення лише від 0 до 255, а відповідні квадратні корені - від 0 до 16 (округлі). Побудуйте таблицю 16 записів (на основі нуля) з n-го запису максимальним значенням аргументу, для якого квадратний корінь є n. Таблиця виглядатиме так:
0
2
6
12
20
etc.
Ви проходите по таблиці та зупиняєтесь, коли стикаєтесь із значенням, що перевищує або дорівнює вашому аргументу. Приклад: квадратний корінь 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
Хоча таблиця швидкого пошуку має фіксований час виконання (лише один пошук), тут для виконання аргументів більш високого значення довше час виконання.
Для обох методів виходить, що, вибираючи різні значення для таблиці, ви можете вибрати округлене або усічене значення для квадратного кореня.