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

C++-এ ৭-সেগমেন্ট ডিসপ্লে-এ ডিজিট দেখাতে LED পরিবর্তনের সংখ্যা গণনা


আমাদের একটি পজিটিভ সংখ্যা (স্ট্রিং আকারে) num দেওয়া আছে। কাজ হল ৭-সেগমেন্ট ডিসপ্লে-এ ডিজিটগুলো একের পর এক দেখাতে হলে LED লাইটগুলোতে মোট কতবার পরিবর্তন (changes) হবে তা গণনা করা। ধরে নেওয়া হয়েছে সব LED প্রাথমিকভাবে বন্ধ (off) অবস্থায় আছে।

৭-সেগমেন্ট ডিসপ্লে কী?

৭-সেগমেন্ট ডিসপ্লে হল একটি আউটপুট ডিভাইস যা ৭টি LED সেগমেন্ট (a, b, c, d, e, f, g) ব্যবহার করে ০-৯ পর্যন্ত ডিজিট প্রদর্শন করে। ৮ নম্বর ডিজিট দেখাতে সব ৭টি LED জ্বালাতে হয়।

C++-এ ৭-সেগমেন্ট ডিসপ্লে-এ ডিজিট দেখাতে LED পরিবর্তনের সংখ্যা গণনা

৭-সেগমেন্ট ডিসপ্লে-এ ডিজিটগুলো দেখানোর জন্য লাগে LED-র সংখ্যা:

0: 6, 1: 2, 2: 5, 3: 5, 4: 4, 5: 5, 6: 6, 7: 3, 8: 7, 9: 5

C++-এ ৭-সেগমেন্ট ডিসপ্লে-এ ডিজিট দেখাতে LED পরিবর্তনের সংখ্যা গণনা

উদাহরণ:

ইনপুট: "123" → আউটপুট: count is 5

ব্যাখ্যা: ১ দেখাতে ২টি LED, ২ দেখাতে ৫টি, ৩ দেখাতে ৫টি। পরিবর্তন: ২ + |৫-২| + |৫-৫| = ৫।

ইনপুট: "576" → আউটপুট: count is 10

ব্যাখ্যা: ৫ (৫ LED), ৭ (৩ LED), ৬ (৬ LED)। পরিবর্তন: ৫ + |৩-৫| + |৬-৩| = ১০।

অ্যালগরিদম

  • LED অ্যারে: {6,2,5,5,4,5,6,3,7,5}

  • প্রথম ডিজিটের LED কাউন্ট = res

  • পরবর্তী ডিজিটগুলোতে: res += abs(LED[current] - LED[previous])

  • ফলাফল রিটার্ন করুন

প্রোগ্রাম

#include <iostream> 
using namespace std; 

int countled(string str) { 
    int Led[] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 5 }; 
    int len = str.length(); 
    int res = Led[str[0] - '0']; 
    for (int i = 1; i < len; i++) { 
        res = res + abs(Led[str[i] - '0'] - Led[str[i - 1] - '0']); 
    } 
    return res; 
} 

int main() { 
    string str = "123"; 
    cout << "count is " << countled(str); 
    return 0; 
}

আউটপুট

count is 5
  1. C++-এ ফ্যাক্টোরিয়ালে অঙ্ক গণনা

  2. C++-এ পূর্ণসংখ্যায় জোড় ও বিজোড় অঙ্ক গণনা

  3. C++-এ অদ্বিতীয় ডিজিটযুক্ত সংখ্যা গণনা

  4. C++ তে অ্যারে রিপ্রেজেন্টেড সংখ্যার সাথে ১ যোগ করা