मान लीजिए कि हमारे पास एक सरणी संख्या और एक मान 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