复制粘贴

mac2022-06-30  20

【题目描述】 kkk最近才学会输出语句,非常兴奋,就要输出N行“6”来表达她的兴奋。但是一条一条语句打呢又太慢,所以kkk就想到了——复制&粘贴! 当然一开始kkk会先打出一条输出语句,然后她可以选择复制粘贴。每次kkk可以复制1~t条语句(其中t表示当前的输出语句数)并粘贴。那么kkk最少需要复制几次才能写出N行“6”呢? 【输入格式】 有多组数据,每组数据包含一个整数N表示要输出多少行 【输出格式】 对于每组数据输出最少的复制次数 【样例输入】 2 10 【样例输出】 1 4 【数据范围】 1<=N<2^32 【分析】 不难发现,为了追求复制次数最少,应该使每一次复制的行数最大化,也就是每一次粘贴后就全选再复制。 如果输入数据恰好是2的x次方,复制的次数就是x。如果不是,就令x为2^x小于输入数据的最大整数,答案就是x+1。

var n,t,ans:qword; begin while not eof do begin read(n); ans:=0; t:=1; while t*2<=n do begin t:=t*2; inc(ans); end; if t<n then inc(ans); writeln(ans); end; end.

转载于:https://www.cnblogs.com/JRX2015U43/p/6533515.html

最新回复(0)