ধরুন আমাদের একটি অ্যারে সংখ্যা এবং একটি মান 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
- রিটার্ন r
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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