Middle — Senior
როგორ გავითვალისწინოთ შემთხვევები ნოლებით სიის ელემენტების გამრავლებაში?
sobes.tech AI
პასუხი AI-სგან
საფუძველზე, როდესაც გამოთვლით ნულების მქონე სიის ელემენტების გამრავლებას, მნიშვნელოვანია გაითვალისწინოთ, რომ მინიმუმ ერთი ნული მთლიან შედეგს ნულს აქცევს. ამ შემთხვევების სწორად დამუშავებისთვის, შეგიძლიათ:
- წინასწარ გადაამოწმოთ ნულების არსებობა. თუ ნული იპოვეთ, შედეგი დაუყოვნებლივ იქნება 0.
- თუ საჭიროა ნულების გარეშე გამრავლების გამოთვლა, შეგიძლიათ მათ უგულებელყოთ ან ცალკე ითვალით.
- სამუშაოებში, სადაც საჭიროა იცოდეთ ყველა ელემენტის გამრავლება გარდა მიმდინარე, შეგიძლიათ გამოიყენოთ წინაპირობის და სუფიქსის გამრავლების მიდგომა, ნულების რაოდენობის გათვალისწინებით.
Python-ის მაგალითი, რომელიც ნულებს ითვალისწინებს:
from functools import reduce
from operator import mul
def product_with_zeros(lst):
zero_count = lst.count(0)
if zero_count > 1:
return 0 # მეტი ერთი ნული — გამრავლება ყოველთვის 0
elif zero_count == 1:
# ნულის გარდა ყველა ელემენტის გამრავლება
prod = 1
for x in lst:
if x != 0:
prod *= x
return 0 if prod == 0 else 0 # საბოლოო გამრავლება იქნება 0
else:
return reduce(mul, lst, 1)