কম্পিউটার

অ্যারে জোড়া k দ্বারা বিভাজ্য বা পাইথন ব্যবহার করে না তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে nums নামক একটি অ্যারে আছে, এই অ্যারেটিতে জোড় সংখ্যার উপাদান রয়েছে এবং এর আরেকটি মান k আছে। আমাদের সংখ্যাগুলিকে ঠিক n/2 জোড়ায় ভাগ করতে হবে যাতে প্রতিটি জোড়ার যোগফল k দ্বারা বিভাজ্য হয়। যদি আমরা তা করতে পারি তাহলে সত্য ফেরত দিন, অন্যথায় মিথ্যা।

সুতরাং, যদি ইনপুটটি nums =[9,5,3,4,7,10,20,8] k =3 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা (9,3), (5) এর মতো জোড়া তৈরি করতে পারি। ,7), (4,20), (8,10), সমস্ত জোড়ার যোগফল 3 দ্বারা বিভাজ্য৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • dp :=একটি নতুন তালিকা

  • গণনা:=0

  • প্রতিটি x সংখ্যায়, করুন

    • t:=k - (x mod k)

    • t যদি k এর মত হয়, তাহলে

      • গণনা :=গণনা + 1

    • অন্যথায়,

      • dp

        -এর শেষে t ঢোকান
  • গণনা মোড 2 যদি 0 এর মত না হয়, তাহলে

    • রিটার্ন ফলস

  • তালিকাটি সাজান dp

  • কম :=0

  • উচ্চ :=dp - 1

    এর আকার
  • যখন কম <উচ্চ, করুন

    • যদি dp[low] + dp[high] k এর মত না হয়, তাহলে

      • রিটার্ন ফলস

    • কম :=কম + 1

    • উচ্চ :=উচ্চ - 1

  • রিটার্ন ট্রু

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

def সমাধান(সংখ্যা, k):dp=[] count=0 এর জন্য x সংখ্যায়:t=k-(x % k) যদি t ==k:count+=1 else:dp.append(t) যদি গণনা % 2 !=0:রিটার্ন ফলস dp.sort() low =0 high =len(dp)-1 যখন কম  

ইনপুট

<প্রে>[9,5,3,4,7,10,20,8], 3

আউটপুট

সত্য

  1. একটি অ্যারে প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে না তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পয়েন্ট চেক করার প্রোগ্রাম অবতল বহুভুজ গঠন করছে নাকি পাইথনে নয়

  3. পয়েন্ট চেক করার প্রোগ্রামটি পাইথনে উত্তল হুল তৈরি করছে বা না

  4. একটি অ্যারের সমস্ত সংখ্যা ব্যবহার করে 3 সংখ্যা দ্বারা বিভাজ্য করা সম্ভব কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম