2017校招真题1 星际穿越

c++ 题目代码很少,主要是如何在O(1)时间输出满足要求的这个数字。

注意数据范围,本题选择long。题目描述和代码如下:

2017校招真题1 星际穿越

#include<iostream>
#include<math.h>
using namespace std;


int main(void)
{
    long x;
    cin>>x;
    long temp = sqrt(x);
    if(temp *(temp+1) > x)
        cout<<(temp-1)<<endl;
    else
        cout<<temp<<endl;
    return 0;
}