普及二分https://www.luogu.com.cn/problem/B3627
给定正整数 ,求 。答案向下取整。
仅一行,一个正整数 。
仅一行,一个正整数,表示 。向下取整输出。
27
3
100000
46
1000000000000000
100000
对于 的数据,有 。
c
#include <stdio.h>
int main() {
long long n;
scanf("%lld", &n);
long long left = 0, right = n;
long long result = 0;
while (left <= right) {
long long mid = left + (right - left) / 2;
long long mid_cubed = mid * mid * mid;
if (mid_cubed <= n) {
result = mid; // 记录当前的 mid 值
left = mid + 1; // 尝试更大的值
} else {
right = mid - 1; // 尝试更小的值
}
}
printf("%lld\n", result);
return 0;
}
库函数
c#include <stdio.h>
#include <math.h>
int main() {
long long n;
scanf("%lld", &n);
long long result = cbrt(n);
printf("%lld\n", result);
return 0;
}
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!