मान लीजिए कि हमारे पास एक सरणी संख्या और एक मान k है। हमें उन क्रमागत अनुगमों की संख्या ज्ञात करनी है जिनका योग k से विभाज्य है।
इसलिए, यदि इनपुट k =3 अंक =[1,2,3,4,1] जैसा है, तो आउटपुट 4 होगा क्योंकि परवर्ती [3], [1,2], [1,2,3] हैं ] और [2,3,4]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- x :=k आकार की एक सरणी और 0 से भरें
- x[0] :=1
- r:=0, s:=0
- संख्याओं में प्रत्येक तत्व के लिए, करें
- s :=(s + elem) mod k
- r :=r + x[s]
- x[s] :=x[s] + 1
- रिटर्न आर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(k, nums):
x = [0]*k
x[0] = 1
r=s=0
for elem in nums:
s = (s+elem) % k
r += x[s]
x[s] += 1
return r
k = 3
nums = [1,2,3,4,1]
print(solve(k, nums)) इनपुट
3, [1,2,3,4,1]
आउटपुट
4