Python程序:找到经过若干天后产品的价格
假设一个人想买一件售价为x的产品。但是随着时间的推移,每天的产品价格都会增加前一天的价格x倍。我们必须找出人在决定购买该产品后y天的产品价格。如果产品价格太高,那么答案是价格模10^9 + 7。输入给定为一对列表;对的第一个值是初始价格x,第二个值是过去的天数y。
因此,如果输入如下nums = [(5, 2), (6, 8), (2, 12), (2722764242812953792238894584, 3486705296791319646759756475), (1505449742164712795427942455727527, 61649494321438487460747056421546274264)],则输出将为25、1679616、4096、754504594、32955023。
这里的输出是5^2 = 25,6^8 = 1679616,2^12 = 4096, 2722764242812953792238894584^3486705296791319646759756475 = 754504594(值以 value modulo 10^9 + 7 给出),依此类推。
要解决这个问题,我们将按照以下步骤进行−
- 对于i在范围0到nums的大小,执行
- x,y := nums[i, 0], nums[i, 1]
- 返回x的y次方模10^9 + 7的值
实例
让我们看一下以下的实现,以更好的理解−
def solve(nums):
for i in range(len(nums)) :
x,y = nums[i][0], nums[i][1]
print(pow(x,y,1000000007))
solve([(5, 2),(6, 8),(2, 12)
,(2722764242812953792238894584, 3486705296791319646759756475)
,(1505449742164712795427942455727527, 61649494321438487460747056421546274264)])
输入
[(5, 2),(6, 8),(2, 12)
,(2722764242812953792238894584, 3486705296791319646759756475)
,(1505449742164712795427942455727527, 61649494321438487460747056421546274264)]
输出
25
1679616
4096
754504594
32955023