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

ফোন নম্বর ডায়াল করার জন্য স্ট্রিং কম্বিনেশন: C/C++ প্রোগ্রাম


একটি দেয়া নম্বরের জন্য, ফোনে নিচের স্পেসিফিকেশন অনুযায়ী সেটি ডায়াল করতে ব্যবহৃত হওয়া স্ট্রিং-এর সকল সম্ভাব্য কম্বিনেশন ডিসপ্লে বা প্রিন্ট করুন।

  • দেয়া ফোনে, আমরা ডায়াল করতে পারি,

  • ২ দিয়ে A বা B বা C,

  • ৩ দিয়ে D বা E বা F,

  • .............

  • ৮ দিয়ে T বা U বা V,

  • ৯ দিয়ে W বা X বা Y বা Z,

  • ১ দিয়ে শুধু ১

  • ০ দিয়ে ০।

উদাহরণস্বরূপ যদি 89 দেওয়া ফোন নম্বর হয়, তবে প্রোগ্রামটি প্রিন্ট করবে

TW,TX,TY,TZ,UW,UX,UY,UZ,VW,VX,VY,VZ

#include <stdio.h>
#include <string.h>
// TableHash[i] ফোনে ডিজিট i-র সাথে মিলে যাওয়া সকল ক্যারেক্টার স্টোর করে
const char TableHash[10][5] = {"", "", "WXYZ", "TUV", "PQRS", "MNO", "GHI", "GHI", "DEF", "ABC"};
// একটি রিকারসিভ ফাংশন যা input number1[] অ্যারে থেকে প্রাপ্ত সকল সম্ভাব্য ওয়ার্ড প্রিন্ট করে size n1। আউটপুট ওয়ার্ডগুলো একে অপর output1[]-এ স্টোর হয়
void UtilWordsPrint(int number1[], int curr_digit1, char output1[], int n1) {
    // বেস কেস, যদি কারেন্ট আউটপুট ওয়ার্ড প্রস্তুত
    int i;
    if (curr_digit1 == n1) {
        printf("%s ", output1);
        return;
    }
    // number1[]-এ কারেন্ট ডিজিটের জন্য সকল ৩টি সম্ভাব্য ক্যারেক্টার ট্রাই করি
    // এবং বাকি ডিজিটের জন্য রিকার
    for (i=0; i

আউটপুট

WTP WTQ WTR WTS WUP WUQ WUR WUS WVP WVQ WVR WVS XTP XTQ XTR XTS XUP XUQ XUR XUS XVP XVQ XVR XVS YTP YTQ YTR YTS YUP YUQ YUR YUS YVP YVQ YVR YVS ZTP ZTQ ZTR ZTS ZUP ZUQ ZUR ZUS ZVP ZVQ ZVR ZVS

টাইম কমপ্লেক্সিটি: উপরের কোডের টাইম কমপ্লেক্সিটি O(4ⁿ) যেখানে n ইনপুট নম্বরের ডিজিট সংখ্যা।


  1. দেওয়া অঙ্কগুলো দিয়ে গঠিত সর্বোচ্চ সংখ্যা খুঁজে বের করা C++-তে

  2. C++-এ একটি দিয়ে দেয়া সংখ্যার অঙ্ক ব্যবহার করে সর্বোচ্চ সংখ্যা নির্ণয়

  3. C++ ব্যবহার করে একটি দেওয়া সংখ্যার সমষ্টি তৈরির সব কম্বিনেশন খুঁজে বের করা

  4. সি++-এ যেসব ফাংশন ওভারলোড করা যায় না