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(該值以模10^9 + 7給出),等等。

為了解決這個問題,我們將遵循以下步驟:

  • 對於範圍從0到nums大小的i,執行以下操作:
    • 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

更新於:2021年5月18日

1K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.