#P1945. Power Hungry Cows
Power Hungry Cows
题目描述:
农夫约翰()的奶牛们希望能够快速计算数字的整数次幂 (),但这需要你的帮助。因为它们要计算的是非常大的数字的幂次方,所以它们只能保留两个用于存储中间结果的工作变量。其中一个工作变量初始化为要计算其幂次方的数字(记为 );另一个工作变量初始化为 。奶牛们可以对任意两个工作变量进行乘法或除法运算,并将结果存储在任意一个工作变量中,但所有结果都以整数形式存储。例如,如果它们想要计算 ,一种进行计算的方法如下:
WV1 WV2
Start: x 1
Multiply first by first, store in second: x x^2
Multiply second by second: x x^4
Multiply second by second: x x^8
Multiply second by second: x x^16
Multiply second by second: x x^32
Divide second by first: x x^31
因此, 可以通过六次运算得出。给定需要计算的幂次以及工作变量的数量,求出计算该幂次所需的最少运算次数。
输入:
一行,包含一个整数:
输出:
输出一行,包含一个整数,该整数表示计算这个幂次方所需的最少操作次数。
输入数据1
31
输出数据1
6
来源:
美国计算机奥林匹克竞赛(USACO)2002 年 2 月赛 。