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

C++-এ সেভেন সেগমেন্ট ডিসপ্লেতে N সেগমেন্ট দিয়ে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা


দেওয়া কাজ হল N সেগমেন্ট ব্যবহার করে যেকোনো সংখ্যক সেভেন সেগমেন্ট ডিসপ্লেতে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা খুঁজে বের করা।

উদাহরণ দিয়ে বোঝা যাক

ইনপুট - N=5

আউটপুট - 71

ব্যাখ্যা - সর্বোচ্চ সংখ্যাটি সেভেন সেগমেন্ট ডিসপ্লেতে নিচের ছবির মতো প্রদর্শিত হবে -

C++-এ সেভেন সেগমেন্ট ডিসপ্লেতে N সেগমেন্ট দিয়ে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা

ইনপুট - N=6

আউটপুট - 111

C++-এ সেভেন সেগমেন্ট ডিসপ্লেতে N সেগমেন্ট দিয়ে প্রদর্শনযোগ্য সর্বোচ্চ সংখ্যা

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

  • পরিস্থিতিটি ৩টি কেসে ভাগ করা যায় -

    • কেস ১ -

      যদি N ০ বা ১ হয়, তবে কোনো সংখ্যা প্রদর্শন করা সম্ভব নয়।

    • কেস ২ -

      যদি N বিজোড় হয়। বিজোড় সংখ্যক সেগমেন্ট দিয়ে যেসব সংখ্যা প্রদর্শন করা যায় সেগুলো হল ২, ৩, ৫, ৭ এবং ৮ যার মধ্যে ৭ সবচেয়ে কম সেগমেন্ট (৩টি) নেয়। তাই ৭ এই কেসে সবচেয়ে গুরুত্বপূর্ণ ডিজিট।

    • কেস ৩ -

      যদি N জোড় হয়। জোড় সংখ্যক সেগমেন্ট দিয়ে যেসব সংখ্যা প্রদর্শন করা যায় সেগুলো হল ০, ১, ৪, ৬, ৯ এবং ৮ যার মধ্যে ১ সবচেয়ে কম সেগমেন্ট (২টি) নেয়। তাই ১ এই কেসে সবচেয়ে গুরুত্বপূর্ণ ডিজিট।

  • MaxNumber() ফাংশনে প্রথমে বেস কন্ডিশন চেক করুন - if (N == 1 || N == 0)

  • এরপর অন্য একটি if স্টেটমেন্ট দিয়ে চেক করুন N জোড় কিনা। যদি হয়, তবে "১" প্রিন্ট করুন কারণ এটি জোড় কেসে সবচেয়ে গুরুত্বপূর্ণ ডিজিট এবং MaxNumber(N - 2) কল করুন যেহেতু ২টি সেগমেন্ট ব্যবহার হচ্ছে।

  • আরেকটি if স্টেটমেন্ট দিয়ে চেক করুন N বিজোড় কিনা। যদি হয়, তবে "৭" প্রিন্ট করুন কারণ এটি বিজোড় কেসে সবচেয়ে গুরুত্বপূর্ণ ডিজিট এবং MaxNumber(N - 3) কল করুন যেহেতু ৩টি সেগমেন্ট ব্যবহার হচ্ছে।

C++ প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

void MaxNumber(int N){
    // বেস কেস চেক করার কন্ডিশন
    if (N == 1 || N == 0){
        return;
    }
    // যদি সংখ্যাটি জোড় হয়
    if (N % 2 == 0){
        cout << "1";
        MaxNumber(N - 2);
    }
    // যদি সংখ্যাটি বিজোড় হয়
    else if (N % 2 == 1){
        cout << "7";
        MaxNumber(N - 3);
    }
}

// মেইন ফাংশন
int main(){
    int N;
    N = 5;
    MaxNumber(N);
    return 0;
}

আউটপুট

71
  1. C++-এ N*N চেসবোর্ডে সর্বোচ্চ বিশপ বসানো

  2. C++-তে সেটে যোগ করা যাবে সর্বোচ্চ ডিফারেন্স এলিমেন্ট বের করা

  3. C++-এ কণকোণী সমদ্বিবাহু ত্রিভুজে ফিট হতে পারা ম্যাক্সিমাম বর্গের সংখ্যা

  4. পাইথনে সংখ্যা সেভেন সেগমেন্ট LED-এ প্রদর্শন করা সম্ভব কিনা তা যাচাই করা