কম্পিউটার

C++ এ দুটি সম্ভাব্য মান থেকে একটি ভেরিয়েবলে অন্য মান বরাদ্দ করুন


সমস্যা বিবৃতি

কোনো শর্তসাপেক্ষ অপারেটর ব্যবহার না করেই আমাদের দুটি সম্ভাব্য মান থেকে অন্য ভেরিয়েবলের মান নির্ধারণ করতে হবে।

বিবরণ

এই সমস্যায়, আমাদেরকে একটি ভেরিয়েবল দেওয়া হয়েছে চলুন বলি a যেটিতে x এবং y দুটি ভেরিয়েবলের যেকোনো একটির মান থাকতে পারে। এখন, কোনো শর্তসাপেক্ষ অপারেটর ব্যবহার না করেই বর্তমান মানের থেকে অন্যের মান নির্ধারণ করার জন্য আমাদের একটি প্রোগ্রাম তৈরি করতে হবে, অর্থাৎ আমরা x-এর মান পরীক্ষা করতে পারছি না।

সমস্যাটি আরও ভালোভাবে বোঝার জন্য একটি উদাহরণ নেওয়া যাক -

Input : a = 43 ; x = 43 and y = 21
Output : 21

ব্যাখ্যা − a এর প্রারম্ভিক মান হল 43 তাই আমাদেরকে অন্য মান যেমন 21 ফেরত দিতে হবে a এর চূড়ান্ত মান হিসাবে৷

যেহেতু আমাদেরকে একটি মান পরীক্ষা করার অনুমতি দেওয়া হয় না, অর্থাত্ যেকোনো ধরনের শর্তসাপেক্ষ বিবৃতি ব্যবহার করা কোডটিতে বৈধ নয়। সুতরাং, আমাদের ভেরিয়েবলের অদলবদল মানের বিকল্প সমাধান দেখতে হবে। এর জন্য, একাধিক সমাধান হতে পারে তবে আমরা এখানে একবার আলোচনা করছি সবচেয়ে সম্ভাব্য এবং সহজ

পাটিগণিত অপারেটর ব্যবহার করে

মান অদলবদল করার একটি সহজ উপায় হল দুটি মানের যোগ/গুণ ব্যবহার করা এবং সংশ্লিষ্ট বিপরীত ক্রিয়াকলাপের জন্য বিয়োগ/বিভাজ্য করা, যদি আমরা যোগ করে থাকি এবং যদি গুণ ব্যবহার করে থাকি তাহলে বিয়োগ।

সুতরাং, সূত্রটি −

হয়ে যায়

a =x + y - a বা a =x * y / a

কিন্তু এখানে গুন এবং ভাগ করার ক্রিয়াকলাপগুলি আরও ব্যয়বহুল এবং কখনও কখনও ত্রুটিগুলি ফেলে দিতে পারে৷ সুতরাং, আমরা এর জন্য যোগ-বিয়োগ কম্বো ব্যবহার করেছি।

উদাহরণ

#include <iostream>
using namespace std;
int main(){
   int x = 45;
   int y = 5;
   int a = x;
   cout<<"Initial value of a is : "<<a;
   a = x+y - a;
   cout<<"\nAfter changing the value of a is : "<<a;
}

আউটপুট

Initial value of a is : 45
After changing the value of a is : 5

bitwise XOR অপারেটর ব্যবহার করা

আরও কার্যকর উপায় হতে পারে বিটওয়াইজ এক্সওআর অপারেটর ব্যবহার করা।

সুতরাং, মানটি নিম্নলিখিত পদ্ধতিতে পরিবর্তিত হবে -

a =x^y^a;

উদাহরণ

#include <iostream>
using namespace std;
int main(){
   int x = 56;
   int y = 78;
   int a = x;
   cout<<"Initial value of a is : "<< a;
   a = x^y^a;
   cout<<"\nAfter changing the value of a is "<<a;
   return 0;
}

আউটপুট

Initial value of a is : 56
After changing the value of a is 78

  1. দুটি BST থেকে জোড়া গণনা করুন যার যোগফল C++ এ একটি প্রদত্ত মানের x এর সমান

  2. কেন আমরা C++ এ একটি উদ্বায়ী কোয়ালিফায়ার ব্যবহার করি?

  3. কিভাবে C# এ ভেরিয়েবলের মান নির্ধারণ করবেন?

  4. পাইথনে ভেরিয়েবলের মান কিভাবে বরাদ্দ করা যায়