#include <iostream>
using namespace std;
int sqrt(int arr[], int n, int key) {
int start = 0;
int end = n - 1;
int mid = start + (end - start) / 2;
int ans = -1;
while (start <= end) {
int square = mid * mid;
if (square == key) {
return mid;
} else if (square > key) {
end = mid - 1;
} else {
start = mid + 1;
ans = mid;
}
mid = start + (end - start) / 2;
}
return ans;
}
double precision(int n, int precision, int integer) {
double factor = 1;
double ans = integer;
for (int i = 0; i < precision; i++) {
factor = factor / 10;
for (double j = ans; j * j < n; j += factor) {
ans = j;
}
}
return ans;
}
int main() {
int n;
cout << "enter the number :" << endl;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
arr[i] = (i + 1);
}
int squareRoot = sqrt(arr, n, n);
double finalAns = precision(n, 3, squareRoot);
cout << "square root of " << n << " is " << finalAns << endl;
return 0;
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter