ধরুন আমাদের একটি সংখ্যা n এবং আরেকটি মান k আছে, বিবেচনা করুন আমাদের প্রথম N প্রাকৃতিক সংখ্যা সহ একটি অ্যারে A আছে, আমাদের A থেকে A[i] এবং A[j] উপাদানের মোট জোড়া সংখ্যা বের করতে হবে, যেমন i
সুতরাং, যদি ইনপুটটি n =10 k =4 এর মত হয়, তাহলে আউটপুট 10 হবে কারণ 10 টি জোড়া আছে যার যোগফল 4 দ্বারা বিভাজ্য। [(1,3), (1,7), (2,6) , (2,10), (3,5), (3,9), (4,8), (5,7), (6,10), (7,9)]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- m :=(n / k), r :=n mod k এর ফ্লোর
- b :=একটি নতুন মানচিত্র
- আমি 0 থেকে k - 1 রেঞ্জের জন্য, কর
- b[i] :=m
- m*k+1 থেকে n রেঞ্জের জন্য,
- করুন
- j :=i mod k
- b[j] :=b[j] + 1
- c :=0
- আমি 0 থেকে k রেঞ্জের জন্য, কর
- i1 :=i
- i2 :=(k - i) mod k
- যদি i1 i2 এর মত হয়, তাহলে
- c :=c + b[i] *(b[i]-1)
- অন্যথায়,
- c :=c + b[i1] *(b[i2])
- c/2 এর রিটার্ন ফ্লোর
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def সমাধান(n, k):m =n // k r =n % k b ={} রেঞ্জে i এর জন্য (k) :b[i] =m এর জন্য i রেঞ্জে (m*k+1, n +1) :j =i % k b[j] =b[j] + 1 c =0 i এর জন্য রেঞ্জ(k) :i1 =i i2 =(k - i) % k যদি i1 ==i2 :c =c + b[i] * (b[i]-1) অন্য :c =c + b[i1] * (b[i2]) ফেরত c//2n =10k =4print(solve(n, k))ইনপুট
4, 27আউটপুট
10