第一道:
翔翔和蕊蕊购买了 n 颗糖果,他们决定一起把糖果吃掉。
他们制定了以下规则:首先确定一个整数 k,然后两人轮流吃糖果。对于每一轮,翔翔先吃掉 k 颗糖果(如果糖果的数量不足 k,则翔翔会吃完糖果),然后蕊蕊吃掉余下糖果的 10%。重复这一过程,直至糖果吃完。
注意,对于蕊蕊来说,如果糖果的数量无法被 10 整除,则 10% 的计算结果向下取整。例如,如果有 97 颗糖果,则蕊蕊会吃掉其中的 9 颗。而如果糖果的数量小于 10 颗,则蕊蕊一颗也吃不到T^T。
找出一个最小的整数 k,使得翔翔可以吃掉 n 颗糖果中至少一半的糖果,输出这一 k 的值。
第一行有一个整数 n (1 ≤ n ≤ 1E18),表示一开始糖果的数量。
输出一个整数,表示在满足条件的情况下,最小可能的 k 值。
第二道:
有这么一个字符串序列
S[1]="1",S[2]="2",S[3]="3",...
Si就是整数i转化成字符串之后的字符串。
再定义字符串序列B[n]=∑ni=1S[i]
例如B[1]="1",B[2]="12",B[3]="123",...
把所有B[i]按照顺序拼接起来,就得到了一个新的字符串T,这个字符串前80位如下:11212312341234512345612345671234567812345678912345678910123456789101112345678910
现在给定一个整数n,要求找出字符串T第n位是什么数字。
单组测试数据。 输入一个整数n (1 ≤ n ≤ 1000000)。
输出一个整数,表示答案。
想了半天了都不会,只知道要用二分,谁能教一下我?谢谢