কম্পিউটার

C/C++ প্রোগ্রামের সংখ্যা খুঁজে বের করার জন্য বিজোড় সংখ্যার বার?


এই প্রোগ্রামে আমরা দেখব কিভাবে আমরা একটি সংখ্যা পেতে পারি যেটি একটি অ্যারেতে বিজোড় সংখ্যক বার ঘটছে। অনেক ভিন্ন পন্থা আছে. সবচেয়ে সহজ পদ্ধতির মধ্যে একটি হল ZOR অপারেশন করা। যদি একটি সংখ্যা নিজের সাথে XOR করা হয়, তাহলে সেটি হবে 0। তাই যদি একটি সংখ্যা XOR করা হয়, তাহলে সেটি হবে 0, অন্যথায় সংখ্যাটি নিজেই।

এই সমাধানটির একটি সমস্যা আছে, যদি একাধিক উপাদানের বিজোড় সংখ্যা থাকে, তবে এটি তাদের একটিকে ফিরিয়ে দেবে।

অ্যালগরিদম

getNumOccurredOdd(arr, n)

begin
   res := 0
   for each element e from arr, do
      res := res XOR e
   done
   return res
end

উদাহরণ

#include <iostream>
using namespace std;
int getNumOccurredOdd(int arr[], int n) {
   int res = 0;
   for (int i = 0; i < n; i++)
      res = res ^ arr[i];
   return res;
}
int main() {
   int arr[] = {3, 4, 6, 5, 6, 3, 5, 4, 6, 3, 5, 5, 3};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << getNumOccurredOdd(arr, n) << " is present odd number of times";
}

আউটপুট

6 is present odd number of times

  1. n-তম ফিবোনাচি সংখ্যার জন্য C/C++ প্রোগ্রাম?

  2. C/C++ প্রোগ্রাম n দ্বারা ভাগ করা অ্যারে গুণের অনুস্মারক খুঁজে পেতে?

  3. C/C++ প্রোগ্রাম একটি সংখ্যার অনন্য মৌলিক গুণনীয়কের গুণফল বের করতে?

  4. ত্রিভুজাকার ম্যাচস্টিক নম্বরের জন্য C/C++ প্রোগ্রাম?