60分求助
  • 板块B3627 立方根
  • 楼主hhy8399
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/9 15:35
  • 上次更新2024/6/9 15:39:07
查看原帖
60分求助
1179906
hhy8399楼主2024/6/9 15:35
#include<bits/stdc++.h>
using namespace std;

#define ll long long

const int a = pow(9223372036854775807,1.0 / 3.0) + 5;

int main()
{
	ll n;
	cin >> n;
	ll large = a,small = 1,middle = (large + small) / 2;
	while(!(large <= small))
	{
		if(middle * middle * middle == n)
		{
			cout << middle << endl;
			return 0;
		}
		if(middle * middle * middle > n)
		{
			large = middle - 1;
		}
		else if(middle * middle * middle < n)
		{
			small = middle + 1;
		}
		middle = (large + small) / 2;
	}
	cout << middle << endl;
	return 0;
}

60分求助

2024/6/9 15:35
加载中...