关注
第三题:
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));
}
}
查看原帖
点赞 评论
牛客热帖
更多
正在热议
更多
# 月薪多少能在一线城市生存 #
79640次浏览 533人参与
# 你会为了工作牺牲生活吗? #
61273次浏览 425人参与
# 百度秋招 #
38715次浏览 334人参与
# 如果再来一次,你还会选择这个工作吗? #
705736次浏览 5732人参与
# 秋招吐槽大会 #
8834次浏览 97人参与
# offer帮选 #
4352071次浏览 26382人参与
# 技术转行的心路历程 #
73242次浏览 745人参与
# 你找工作想离家近 or 离家远? #
1813次浏览 34人参与
# 总结:哪家公司最喜欢泡池子 #
151638次浏览 543人参与
# 小米编程考试 #
23463次浏览 145人参与
# 你小时候最想从事什么职业 #
134905次浏览 1992人参与
# 互联网行业现在还值得去吗 #
38598次浏览 282人参与
# 虾皮开奖 #
45938次浏览 214人参与
# 滴滴歧视残疾人HR被开除 #
24034次浏览 86人参与
# 京东工作体验 #
19604次浏览 114人参与
# 26届的你们有几段实习? #
153445次浏览 1068人参与
# 25届非技术实习投递记录 #
137543次浏览 1001人参与
# 落户对你的求职选择影响有多大 #
30287次浏览 101人参与
# 机械人,秋招第一次笔试的企业是哪家? #
79991次浏览 611人参与
# 你认为工作的意义是什么 #
211437次浏览 1354人参与
# 大疆求职进展汇总 #
631717次浏览 4263人参与

