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

ตรวจสอบว่าผลคูณของหลักที่ตำแหน่งคู่หารด้วยผลรวมของหลักที่ตำแหน่งคี่ของตัวเลขใน Python ลงตัวหรือไม่


สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าผลคูณของหลักที่ตำแหน่งคู่ของ n หารด้วยผลรวมของหลักที่ตำแหน่งคี่ของ n ได้หรือไม่ สถานที่เริ่มนับจากขวาไปซ้าย ขวาสุดอยู่ที่ตำแหน่งที่ 1

ดังนั้น หากอินพุตเท่ากับ n =59361 ผลลัพธ์จะเป็น True (1*3*5) =(6+9)

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

  • digit_count :=การนับจำนวนหลัก n
  • ผลรวม :=0, ผลิตภัณฑ์ :=1
  • ในขณะที่ n> 0, ทำ
    • ถ้า digit_count เป็นเลขคู่
      • prod :=prod * ตัวเลขสุดท้ายของ n
    • มิฉะนั้น
      • ผลรวม :=ยอดทั้งหมด + ตัวเลขสุดท้ายของ n
    • n :=ผลหารของ (n / 10)
    • digit_count :=digit_count - 1
  • ถ้า prod หารด้วยผลรวมลงตัว
    • คืนค่า True
  • คืนค่าเท็จ

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

โค้ดตัวอย่าง

from math import log10

def solve(n):
   digit_count = int(log10(n))+1
   total = 0
   prod = 1
   while n > 0 :
      if digit_count % 2 == 0 :
         prod *= n % 10
      else:
         total += n % 10
        
      n = n // 10
      digit_count -= 1
 
   if prod % total == 0:
      return True
   return False
   
n = 59361
print(solve(n))

อินพุต

59361

ผลลัพธ์

True