কম্পিউটার

C++ শব্দে একটি ধনাত্মক পূর্ণসংখ্যা প্রকাশ করার প্রোগ্রাম


ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া হয়েছে। শব্দে সংখ্যা বানান করতে হবে; যেমন একটি সংখ্যা "56" ইনপুট হিসাবে দেওয়া হলে আউটপুট হবে "ছাপ্পান্ন"। রূপান্তরের পরিসীমা এক বিলিয়ন পর্যন্ত।

সুতরাং, যদি ইনপুটটি ইনপুট =5678 এর মত হয়, তাহলে আউটপুট হবে পাঁচ হাজার ছয়শত আটটি।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি অ্যারে 'সংখ্যা' সংজ্ঞায়িত করুন যাতে জোড়া থাকে যেমন − {{"বিলিয়ন", 1000000000},
    • {"মিলিয়ন", 1000000},
    • {"হাজার", 1000},
    • {"শত", 100},
    • {"নব্বই", 90},
    • {"আশি", 80},
    • {"সেভেন্টি", 70},
    • {"ষাট", 60},
    • {"পঞ্চাশ", 50},
    • {"চল্লিশ", 40},
    • {"ত্রিশ", 30},
    • {"টুয়েন্টি", 20},
    • {"উনিশ", 19},
    • {"আঠারো", 18},
    • {"সেভেন্টিন", 17},
    • {"ষোল", 16},
    • {"পনেরো", 15},
    • {"চৌদ্দ", 14},
    • {"তেরো", 13},
    • {"Twelve", 12},
    • {"এগারো", 11},
    • {"দশ", 10},
    • {"নয়", 9},
    • {"আট", 8},
    • {"সাত", 7},
    • {"ছয়", 6},
    • {"ফাইভ", 5},
    • {"চার", 4},
    • {"তিন", 3},
    • {"দুই", 2},
    • {"এক", 1}}
  • একটি ফাংশন সংজ্ঞায়িত করুন সমাধান()। এটি ইনপুট নেয়৷
    • যদি ইনপুট 0 এর মত হয়, তাহলে −
      • রিটার্ন "জিরো"
    • অ্যারে সংখ্যার প্রতিটি সংখ্যার জন্য, করুন
      • যদি num এর দ্বিতীয় মান <=ইনপুট হয়, তাহলে −
        • যদি num এর দ্বিতীয় মান>=100 হয়, তাহলে −
          • ফলাফল :=সমাধান (ইনপুট / সংখ্যার দ্বিতীয় মান)
          • যদি ইনপুট> (ইনপুট/সংখ্যার দ্বিতীয় মান) * m এর দ্বিতীয় মান, তাহলে −
            • ফলাফল :=ফলাফল + " " + সমাধান (ইনপুট - (ইনপুট / সংখ্যার দ্বিতীয় মান))
        • অন্যথায়,
          • ফলাফল :=num এর প্রথম মান
        • লুপ থেকে বেরিয়ে আসুন
    • ফলাফল
  • সমাধান (ইনপুট)

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include<bits/stdc++.h>

using namespace std;

vector<pair<string, int>> numbers{{"Billion", 1000000000},
   {"Million", 1000000},
   {"Thousand", 1000},
   {"Hundred", 100},
   {"Ninety", 90},
   {"Eighty", 80},
   {"Seventy", 70},
   {"Sixty", 60},
   {"Fifty", 50},
   {"Forty", 40},
   {"Thirty", 30},
   {"Twenty", 20},
   {"Nineteen", 19},
   {"Eighteen", 18},
   {"Seventeen", 17},
   {"Sixteen", 16},
   {"Fifteen", 15},
   {"Fourteen", 14},
   {"Thirteen", 13},
   {"Twelve", 12},
   {"Eleven", 11},
   {"Ten", 10},
   {"Nine", 9},
   {"Eight", 8},
   {"Seven", 7},
   {"Six", 6},
   {"Five", 5},
   {"Four", 4},
   {"Three", 3},
   {"Two", 2},
   {"One", 1}};
string solve(int input) {
   if (input == 0) return "Zero";
   string result;
   for (auto& num : numbers) {
      if (num.second <= input) {
         if (num.second >= 100) {
            result = solve(input / num.second) + " " + num.first;
            if (input > (input / num.second) * num.second)
               result += " " + solve(input - (input / num.second) * num.second);
         } else {
            result = num.first + (input > num.second ? " " + solve(input - num.second) : "");
         }
         break;
      }
   }
   return result;
}

int main() {
   cout<< solve(5678) <<endl;
   return 0;
}

ইনপুট

5678

আউটপুট

Five Thousand Six Hundred Seventy Eight

  1. আর্মস্ট্রং নম্বর চেক করতে C++ প্রোগ্রাম

  2. একটি সংখ্যার শক্তি গণনা করার জন্য C++ প্রোগ্রাম

  3. C++ প্রোগ্রাম একটি নম্বর বিপরীত করতে

  4. পাইথন প্রোগ্রাম একটি ইতিবাচক পূর্ণসংখ্যা সংখ্যার বিট বিপরীত?