题解 | #平方根#
平方根
https://ac.nowcoder.com/acm/problem/22003
二分法求平方根:
#include<iostream> using namespace std; int bioSearch(int x){ int left = 0; int right = x; int ans = -1; while(left <= right){ int mid = left + (right - left)/2; if((long long)mid*mid > x){ right = mid - 1; ans = right; } else if((long long)mid*mid < x){ left = mid + 1; } else return mid; } return ans; } int main(){ int n; cin >> n; int y = bioSearch(n); cout << y <<endl; }