কম্পিউটার টিউটোরিয়াল

C++-এ অ্যারেয়ের সব ভ্যালু ১ করতে ন্যূনতম রাইট ফ্লিপ

আমাদের ০ ও ১ দিয়ে একটি অ্যারে দেওয়া আছে (বাল্ব অন/অফ)। একই তারে সংযুক্ত N বাল্ব। i-তম বাল্বের সুইচ চাপলে ডানপাশের সব বাল্ব (i+1 থেকে n) তাদের স্টেট ফ্লিপ করে (অন->অফ, অফ->অন)। লক্ষ্য সব বাল্ব অন (১) করতে ন্যূনতম সুইচ প্রেস কাউন্ট করা।

ইনপুট

Bulbs[]= { 1,0,1,0 }

আউটপুট

Minimum right flips: 3

ব্যাখ্যা: 1010 -> সুইচ ২ -> 1101 (count=1) -> সুইচ ৩ -> 1110 (count=2) -> সুইচ ৪ -> 1111 (count=3)।

ইনপুট

Bulbs[]= { 1,0,0,0 }

আউটপুট

Minimum right flips: 1

ব্যাখ্যা: 1000 -> সুইচ ২ -> 1111 (count=1)।

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

  • minFlips(int arr[], int n) ফাংশন।
  • count=0, switch[]={0} (ফ্লিপ স্টেট)۔
  • i=0 থেকে n-1: arr[i]==1 && switch[i]==0 -> কিছু নয়। arr[i]==0 && switch[i]==1 -> কিছু নয়। arr[i]==0 && switch[i]==0 -> count++, j=i থেকে n-1 পর্যন্ত arr[j] ফ্লিপ (০->১, ১->০)।
  • count রিটার্ন।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

int minFlips(int arr[], int n){
    int count = 0;
    int swich[100] = {0};
    for(int i=0; i

আউটপুট

Minimum right flips to set all values in an array: 4
  1. C++-এ A % X = B সমীকরণ সन्तুষ্টকারী X এর সম্ভাব্য মানগুলোর সংখ্যা

  2. C++-এ অ্যারেতে K স্ট্রongesতম মান বের করা

  3. রেঞ্জে অ্যারের সব উপাদান দ্বারা বিভাজ্য সংখ্যাগুলি গণনা C++-এ (LCM পদ্ধতি)

  4. C++-তে অ্যারেতে থাকা সব প্রাইম নম্বরের গুণফল বের করা