কম্পিউটার

C++ তে 1 দ্বারা পৃথক একটি ধারাবাহিক উপাদান সহ সাবরে গণনা করুন


আমাদেরকে পূর্ণসংখ্যা সম্বলিত একটি অ্যারে arr[] দেওয়া হয়েছে। লক্ষ্য হল arr[] এর সমস্ত সাবঅ্যারে গণনা করা যাতে প্রতিটি সাবঅ্যারেতে পরপর উপাদানগুলি শুধুমাত্র 1 দ্বারা পৃথক হয়। যদি অ্যারেটি [1,2,3] হয়। সাবারেগুলি শুধুমাত্র [1,2], [2,3], [1,2,3] হবে।

আসুন উদাহরণ দিয়ে বুঝতে পারি।

ইনপুট − arr[] ={ 4,3,2,1 };

আউটপুট − 1 দ্বারা পৃথক একটি ধারাবাহিক উপাদান সহ সাব্যারেগুলির সংখ্যা হল − 6

ব্যাখ্যা − সুবারায় −

হবে <প্রে>[4,3], [3,2], [2,1], [4,3,2], [3,2,1], [4,3,2,1]। মোট ৬.

ইনপুট − arr[] ={ 1,5,6,7,9,11 };

আউটপুট − 1 দ্বারা পৃথক পরপর উপাদান সহ সাব্যারেগুলির গণনা হল −3

ব্যাখ্যা − সুবারায় −

হবে <প্রে>[5,6], [6,7], [5,6,7]। মোট 3

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

আমরা একটি লুপ ব্যবহার করে অ্যারেটি অতিক্রম করব। i=0 থেকে i<আকার পর্যন্ত। তারপর পরীক্ষা করুন যে কোনো উপাদান তার সংলগ্ন উপাদান দ্বারা 1 দ্বারা পৃথক কিনা। যদি হ্যাঁ প্রথম হিসাবে সূচক সংরক্ষণ করুন। যদি না হয় তাহলে সাব্যারেতে উপাদানের সংখ্যা টেম্প হিসাবে নিন (প্রথম-শেষ +1)। প্রথম এবং শেষের সূচীগুলির মধ্যে অ্যারেগুলির সমস্ত ধারাবাহিক উপাদানগুলি 1 দ্বারা পৃথক হয়৷ সুতরাং মোট সাব্যারেগুলি হবে temp*(temp-1)/2৷ গণনা করতে এই যোগ করুন. সূচী আপডেট করুন first=last=i পরের অ্যারের জন্য পরপর সমস্ত উপাদান সহ।

  • সংখ্যার একটি অ্যারে অ্যারে নিন।

  • ফাংশন sub_ele_diff_one(int arr[], int size) অ্যারে নেয় এবং 1 দ্বারা পৃথক উপাদানগুলির সাথে একটি সাবয়ারের গণনা প্রদান করে৷

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • আমরা i=0 থেকে I পর্যন্ত লুপগুলির জন্য a ব্যবহার করে অ্যারেটি অতিক্রম করব

  • প্রথমে দুটি ভেরিয়েবল নিন, সূচকগুলির জন্য 0 হিসাবে শেষ করুন যেখানে সমস্ত উপাদান পরপর এবং 1 দ্বারা পৃথক৷

  • arr[i-1]-arr[i] ==1 বা arr[i]-arr[i-1]==1 কিনা পরীক্ষা করুন। (উপাদান 1 দ্বারা পৃথক)। সত্য হলে, আগে বৃদ্ধি করুন।

  • যদি পূর্ববর্তী শর্তটি মিথ্যা হয়, তাহলে অ্যারের মোট উপাদান যা এই শর্তটি পূরণ করে তা হল temp=first-last+1। সম্ভাব্য সাব্যারে হল মোট=temp*(temp-1)/2।

  • এখন গণনার জন্য এই সাবয়ারে গণনা মোট যোগ করুন।

  • বর্তমান I এর সাথে প্রথম এবং শেষ সূচীগুলি আপডেট করুন (যে সূচীতে ধারাবাহিক উপাদানের অবস্থা ব্যর্থ হয়।

  • লুপের শেষে যদি প্রথম হয়!=শেষ। এর মানে বাকি অ্যারে শর্তটি সন্তুষ্ট করে। একই ধাপগুলি প্রয়োগ করুন এবং গণনার জন্য মোট যোগ করুন।

  • উভয় লুপের শেষে, ফলাফল হিসাবে গণনা করুন।

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;int sub_ele_diff_one(int arr[], int size){ int count =0, first =0, last =0; জন্য (int i =1; i  

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
 1 দ্বারা পৃথক একটি ধারাবাহিক উপাদান সহ সাবাররেগুলির সংখ্যা হল:2

  1. C++ এর সমষ্টি সহ বাইনারি সাবাররে

  2. C++-এ চমৎকার সাবরে-এর সংখ্যা গণনা করুন

  3. C++-এ b-এর চেয়ে বেশি উপসর্গ

  4. C++ এ প্রাইম ফ্রিকোয়েন্সি সহ অ্যারে উপাদান?