
本文共 2661 字,大约阅读时间需要 8 分钟。
������������������������������������������������
������������
��������������������� num���������������������������������������������������������������������������������������������������������������������������������������16 = 4^2 ������������������������ 28 ������������������������
������������
��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� f(x) = x^2 - num��������������������������� x0 = num / 2��������������� f(x) = 0 ���������
������������
���������������������
- ������ num = 1 ��� 4��������������� True������������������������ 1^2 ��� 2^2���
- ������ num ������ 4��������������������������������������� False���
������������
- ��������������� x0 = num / 2���
���������������������
- ��������������������� x ��������� x^2 ��� num���������
- ��������������������� x_{k+1} = (x_k + num / x_k) / 2���
- ������ x_{k+1}^2 ������������ num��������� True���
- ������ x_{k+1}^2 ������ num���������������������������������������������������
���������������
- ��������������������� x^2 ��� num ��������������������� num ������������������������������ False���
������������
public class Solution { public boolean isPerfectSquare(int num) { if (num == 1 || num == 4) return true; if (num < 4) return false; long x = num / 2; while (x * x > num) { x = (x + num / x) / 2; } return x * x == num; }}
������������
��������������������������������������������������������������������������� f(x) = x^2 - num ��������������������� f'(x) = 2x������������������������������������������������������ x_{k+1} ������������������
[ x_{k+1} = x_k - \frac{f(x_k)}{f'(x_k)} = \frac{x_k + \frac{num}{x_k}}{2} ]
���������f(x_k) = x_k^2 - num���f'(x_k) = 2x_k������������������������������������������
��������� x0 = num / 2 ��������������������������������������������������������������������� x^2 ������������������������������
������������������������������������������������������ x ������������ x^2 ������������ num������������ num ���������������������������
���������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������ O(1)���������������������������������������������������������������������������
������������
��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� Math.sqrt ���������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
