关注
第三题:
import java.util.Scanner;
public class Problem3 {
private static long pow(long number, long index) {
if (index == 0) {
return 1;
}
if (index == 1) {
return number;
}
long mid = index / 2;
long r1 = pow(number, mid);
return r1 * r1 * pow(number, index - 2 * mid);
}
private static long getDay(long x, long k) {
int day = 0;
int base = 1;
while (base <= x) {
day ++;
base *= k;
}
return day;
}
private static boolean single(long n, long k, long x) {
long days = getDay(x, k);
long res = 0;
long base = 1;
for (long i = 0; i < days; ++ i) {
res += (x / base);
base *= k;
}
return res >= n;
}
private static void solution(long n, long k) {
if (n == 1) {
System.out.println(1);
return;
}
long left = 2, right = n;
if (single(n, k, left)) {
System.out.println(2);
return;
}
while (left < right) {
//System.out.println(left + " --- " + right + " " + single(n, k, 8));
if (left + 1 == right) {
if (single(n, k, left)) {
System.out.println(left);
} else {
System.out.println(right);
}
return;
}
long mid = (left + right) / 2;
if (single(n, k, mid)) {
right = mid;
} else {
left = mid;
}
}
System.out.println(left);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(), k = scanner.nextInt();
solution(n, k);
//System.out.println(single(10, 3, 8));
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 什么是优秀的实习经历 #
8929次浏览 219人参与
# 实习简历求拷打 #
14502次浏览 171人参与
# 被上班搭子“传染”了哪些习惯 #
5923次浏览 100人参与
# 秋招被挂春招仍然能投的公司 #
7221次浏览 102人参与
# 工作后,你落下了哪些病根 #
14083次浏览 192人参与
# 作业帮求职进展汇总 #
83601次浏览 547人参与
# 外包能不能当跳板? #
54198次浏览 256人参与
# mt对你说过最有启发的一句话 #
37660次浏览 449人参与
# 一起聊美团 #
307386次浏览 1764人参与
# 摸鱼被leader发现了怎么办 #
102661次浏览 653人参与
# 京东开奖 #
631795次浏览 3180人参与
# 投格力的你,拿到offer了吗? #
153099次浏览 817人参与
# 秋招特别不鸣谢 #
16172次浏览 182人参与
# 考研失败就一定是坏事吗? #
201811次浏览 1378人参与
# 选实习,你更看重哪方面? #
14673次浏览 223人参与
# 安克创新求职进展汇总 #
62429次浏览 541人参与
# 京东美团大战,你怎么看? #
158231次浏览 861人参与
# 第一次面试 #
1036704次浏览 13683人参与
# 担心入职之后被发现很菜怎么办 #
266518次浏览 1133人参与
# 你今年的保底offer是哪家 #
155319次浏览 677人参与
