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

ผลิตภัณฑ์ที่ใหญ่ที่สุดของตัวเลขต่อเนื่องกันใน Python


สมมติว่าเรามีตัวเลขสองตัวคือ num และ k เราต้องหาผลคูณที่ใหญ่ที่สุดของ k contiguousdigits เป็น num เราต้องจำเอาไว้ว่า num นั้นรับประกันว่ามี>=k หลัก

ดังนั้น หากอินพุตเท่ากับ num =52689762 และ k =4 ผลลัพธ์จะเป็น 3024 ผลคูณที่ใหญ่ที่สุดของ 4 หลักติดต่อกันคือ (8*9*7*6) =3024

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

  • ใหญ่สุด :=0
  • แคน :=1
  • ในขณะที่ (ผลหารของ num/10)^(k-1)> 0, ทำ
    • หลัก :=(หลักสุดท้ายของ nums)^k
    • แคน :=1
    • ในขณะที่ตัวเลข> 0, ทำ
      • cand :=cand * (mod 10 หลัก)
      • ถ้าแคนด์มีค่าเท่ากับ 0 แล้ว
        • ออกมาจากวงจร
      • หลัก :=ผลหารของหลัก / 10
    • ที่ใหญ่ที่สุด :=สูงสุดของที่ใหญ่ที่สุดและแคนด์
    • num :=ผลหารของ nums / 10
  • ผลตอบแทนสูงสุด

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

ตัวอย่าง

class Solution:
   def solve(self, num, k):
      largest = 0
      while num // 10 ** (k - 1) > 0:
         digits = num % 10 ** k
         cand = 1
         while digits > 0:
            cand *= digits % 10
            if cand == 0:
               break
               digits //= 10
               largest = max(largest, cand)
               num //= 10
      return largest
ob = Solution()
num = 52689762
k = 4
print(ob.solve(num,k))

อินพุต

52689762, 4

ผลลัพธ์

3024