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

সি++-এ ৪ ও ৭ দিয়ে গঠিত সংখ্যা সিরিজে প্রদত্ত সংখ্যার পজিশন বের করা

এই সমস্যাতে, আমাদের একটি সংখ্যা N দেওয়া আছে। আমাদের কাজ হলো ৪ এবং ৭ দিয়ে গঠিত সংখ্যা সিরিজে প্রদত্ত সংখ্যার পজিশন (position) বের করা। সিরিজটি হলো: ৪, ৭, ৪৪, ৪৭, ৭৪, ৭৭, ৪৪৪...।

উদাহরণ দিয়ে সমস্যা বোঝা যাক,

ইনপুট

N = 5

আউটপুট

74

ব্যাখ্যা

সিরিজের ৫টি পদ: ৪, ৭, ৪৪, ৪৭, ৭৪...

সমাধানের পদ্ধতি

এই সমস্যার একটি সহজ সমাধান হলো সিরিজের প্যাটার্ন (pattern) খুঁজে বের করা।

এখানে, প্রতিটি ইভেন (even) পজিশনের শেষে ৭ থাকে।

এবং প্রতিটি অড (odd) পজিশনের শেষে ৪ থাকে।

তাই আমরা ডিজিট বাই ডিজিট যেতে পারি এবং বর্তমান ডিজিটের উপর ভিত্তি করে পজিশন বের করতে পারি।

যদি বর্তমান ডিজিট ৪ হয়, তবে পজিশন = (পজিশন × ২) + ১।

যদি বর্তমান ডিজিট ৭ হয়, তবে পজিশন = (পজিশন × ২) + ২।

সমাধান কোড:

উদাহরণ

#include <iostream>
using namespace std;

int findNumPosition(string num){
    int i = 0, position = 0;
    while (num[i] != '\0') {
        position *= 2;
        if(num[i] == '4')
            position += 1;
        else
            position += 2;
        i++;
    }
    return position;
}

int main() {
    string num = "74774";
    cout<<"The position of the number in the series is "<<findNumPosition(num);
    return 0;
}

আউটপুট

The position of the number in the series is 53
  1. C++-এ ফুটবলে পেন্টাগন এবং হেক্সাগন সংখ্যা বের করুন

  2. C++ প্রোগ্রাম: স্ট্রিংয়ের পারমুটেশন সংখ্যা বের করা

  3. C++ প্রোগ্রাম: n সংখ্যার GCD এবং LCM নির্ণয়

  4. C++ প্রোগ্রাম: তিনটি সংখ্যার মধ্যে বড়টি খুঁজে বের করা