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

โปรแกรมค้นหาราคาสุดท้ายพร้อมส่วนลดพิเศษในร้านค้าใน Python


สมมติว่าเรามีอาร์เรย์ที่เรียกว่า price โดยที่ price[i] แทนราคาของไอเท็ม ith ในร้าน มีข้อเสนอพิเศษเกิดขึ้นหากเราซื้อไอเท็ม ith แล้วเราจะได้ส่วนลดเทียบเท่ากับราคา[j] โดยที่ j เป็นดัชนีขั้นต่ำที่ j> i และราคาของ jth น้อยกว่าหรือเท่ากับราคาของ ith รายการ (เช่น ราคา[j] <=ราคา[i]) มิฉะนั้น เราจะไม่รับส่วนลดใดๆ เลย เราต้องหาอาร์เรย์ที่องค์ประกอบ ith เป็นราคาสุดท้ายที่เราจะจ่ายสำหรับรายการ ith ของร้านค้าโดยพิจารณาจากส่วนลดพิเศษ

ดังนั้น หากอินพุตเหมือนกับราคา =[16,8,12,4,6] ผลลัพธ์จะเป็น [8, 4, 8, 4, 6] เนื่องจากราคาของ item0 คือ 16 ดังนั้นเราจะได้ ส่วนลดเทียบเท่าราคา[1]=8 ดังนั้นราคาสุดท้ายจะเป็น 8 - 4 =4 สำหรับรายการ 1 ราคา[1] คือ 8 เราจะได้ส่วนลดเทียบเท่าราคา[3]=2 ดังนั้น สุดท้าย ราคาที่เราจะจ่ายคือ 8 - 4 =4 สำหรับรายการที่ 2 ที่มีราคา[2] คือ 12 และเราจะได้มูลค่าส่วนลดเท่ากับราคา[3] =4 ดังนั้นราคาสุดท้ายที่เราจะจ่ายคือ 12 - 4 =8. และสำหรับรายการ 3 และ 4 เราจะไม่รับส่วนลดใดๆ

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

  • สำหรับผมอยู่ในช่วง 0 ถึงขนาดของราคาทำ

    • สำหรับ j ในช่วง i+1 ถึงขนาดของราคา ให้ทำ

      • ถ้าราคา[i]>=ราคา[j] แล้ว

        • ราคา[i] :=ราคา[i] - ราคา[j]

        • ออกจากวง

      • มิฉะนั้น

        • เจ :=เจ + 1

  • ราคาส่งกลับ

ตัวอย่าง (Python)

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

def solve(prices):
   for i in range(len(prices)):
      for j in range(i+1,len(prices)):
         if(prices[i]>=prices[j]):
            prices[i]-=prices[j]
            break
         else:
            j+=1
   return prices

prices = [16,8,12,4,6]
print(solve(prices))

อินพุต

[16,8,12,4,6]

ผลลัพธ์

[8, 4, 8, 4, 6]