Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python หาราคาสินค้าหลังผ่านไปหลายวัน


สมมุติว่าคนต้องการซื้อสินค้าราคา x แต่ในแต่ละวันที่ผ่านไป ราคาของผลิตภัณฑ์จะเพิ่มขึ้น x เท่าของราคาวันก่อนหน้า เราต้องค้นหาราคาของผลิตภัณฑ์หลังจาก y วันเนื่องจากบุคคลนั้นตัดสินใจซื้อสินค้า หากราคาของผลิตภัณฑ์มากเกินไป คำตอบจะเป็นแบบโมดูโลราคา 10^9 + 7 ข้อมูลที่ป้อนจะแสดงในรายการคู่ ค่าแรกของคู่คือราคาเริ่มต้น x และค่าที่สองคือ y จำนวนวันที่ผ่านไป

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[(5, 2), (6, 8) (2, 12), (2722764242812953792238894584, 3486705296791319646759756475), (1505449742164712795427942455727527, 61649494321438487460747056421546274264)] จากนั้นผลลัพธ์จะเป็น 4096, 754504594, 32955023

ผลลัพธ์ที่ได้คือ 5^2 =25, 6^8 =1679616, 2^12 =4096,2722764242812953792238894584^3486705296791319646759756475 =754504594 (ค่านี้กำหนดเป็นค่าโมดูโล 10^9 + 7) เป็นต้น

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • สำหรับ i ในช่วง 0 ถึงขนาดของ nums ให้ทำ
    • x,y :=nums[i, 0], nums[i, 1]
    • คืนค่า x กลับเป็นกำลัง y โมดูโล 10^9 + 7

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def dissolve(nums):for i in range(len(nums)) :x,y =nums[i][0], nums[i][1] print(pow(x,y,1000000007)) แก้([(5, 2),(6, 8)(2, 12),(2722764242812953792238894584, 3486705296791319646759756475),(1505449742164712795427942455727527, 61649494321438487460747056421546274264)])

อินพุต

<ก่อนหน้า>[(5, 2),(6, 8),(2, 12),(2722764242812953792238894584, 3486705296791319646759756475),(1505449742164712795427942455727527, 61649494321438487460747056421546274264)]

ผลลัพธ์

251679616409675450459432955023