Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में धनात्मक पूर्णांक संख्या को शब्दों में व्यक्त करने का प्रोग्राम

मान लीजिए हमें एक धनात्मक पूर्णांक संख्या दी गई है। हमें संख्या को शब्दों में लिखना है; जैसे यदि संख्या "56" इनपुट के रूप में दी गई है तो आउटपुट "Fifty-Six" होगा। रूपांतरण की सीमा एक अरब तक है।

तो, यदि इनपुट input = 5678 है, तो आउटपुट Five Thousand Six Hundred Seventy-Eight होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • '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}
  • solve() नामक एक फंक्शन परिभाषित करें। यह इनपुट लेता है।
    • यदि इनपुट 0 के समान है, तो:
      • "Zero" लौटाएं
    • numbers सरणी में प्रत्येक num के लिए, करें:
      • यदि num का दूसरा मान <= इनपुट, तो:
        • यदि num का दूसरा मान >= 100, तो:
          • result := solve(इनपुट / num का दूसरा मान)
          • यदि इनपुट > (इनपुट / num का दूसरा मान) * num का दूसरा मान, तो:
            • result := result + " " + solve(इनपुट - (इनपुट / num का दूसरा मान) * num का दूसरा मान)
        • अन्यथा:
          • result := num का पहला मान + ((यदि इनपुट > num का दूसरा मान, तो: " " + solve(इनपुट - num का दूसरा मान), अन्यथा: ""))
        • लूप से बाहर आएं
    • result लौटाएं
  • solve(इनपुट)

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#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++ प्रोग्राम: संख्या की घात की गणना करें

    परिचयकिसी संख्या की घात की गणना x^y के रूप में की जा सकती है जहां x संख्या है और y उसकी घात है। उदाहरण के लिए, x = 2 और y = 10, तो x^y = 1024। संख्या की घात की गणना रिकर्सिव और नॉन-रिकर्सिव प्रोग्राम का उपयोग करके की जा सकती है। दोनों नीचे दिए गए हैं। नॉन-रिकर्सिव प्रोग्राम का उपयोग करके संख्या की घ

  1. - C++ प्रोग्राम: संख्या को उल्टा करें

    परिचयसंख्या को उल्टा करने का अर्थ है उसके अंकों को उल्टे क्रम में संग्रहीत करना। उदाहरण के लिए: यदि संख्या 6529 है, तो आउटपुट में 9256 प्रदर्शित होगा। उदाहरण#include <iostream> using namespace std; int main() { int num = 63972, rev = 0; while (num > 0) { rev = rev * 10 + nu

  1. - धनात्मक पूर्णांक के बिट्स को उल्टा करने के लिए पायथन प्रोग्राम

    समस्या विवरण सबसे पहले bin() फंक्शन का उपयोग करके संख्या को बाइनरी में बदलें। फिर बाइनरी प्रतिनिधित्व के पहले दो वर्ण छोड़ें क्योंकि bin() बाइनरी प्रतिनिधित्व में 0b प्रीफिक्स जोड़ता है और शेष भाग को उल्टा करें। फिर वर्ण से उल्टा करें जब तक बाएं से दूसरा अंतिम वर्ण न हो। उल्टे बाइनरी स्ट्रिंग को पूर