परिचय
यह एल्गोरिदम एक दी गई संख्या को अंग्रेजी शब्दों में बदल देगा। जैसे 564 होगा Five Hundred and Sixty-Four।
इस एल्गोरिदम के लिए, कुछ पूर्वनिर्धारित स्ट्रिंग्स दी गई हैं, उस सूची से, यह शब्द बनाने के लिए उचित शब्द प्राप्त करेगा।
सूचियाँ इस प्रकार हैं:
- Units: यह (0 से 9) तक के सभी शब्दों को धारण करेगा जैसे Zero, One...Nine
- twoDigits: यह (10 - 19) से सभी संख्याओं को धारण करेगा, जैसे Ten, Eleven...Nineteen
- tenMul: दस के गुणकों के लिए, (20-90), जैसे Twenty, Thirty,... Ninety।
- tenPower: यह Hundred और Thousands के लिए है जैसे 10 की घात 2 और 3
इनपुट और आउटपुट
इनपुट: संख्या: 568 आउटपुट: Five Hundred And Sixty Eight
एल्गोरिदम
numToWord(num)
कुछ सूचियाँ हैं जो विभिन्न पूर्णांकों के लिए शब्द धारण करती हैं
इनपुट: संख्या
आउटपुट: संख्या को शब्दों में प्रस्तुत करें
Begin
यदि n >= 0 और n < 10, तो
units(n) को शब्दों में प्रदर्शित करें
अन्यथा यदि n >= 10 और n < 20, तो
twoDigitNum(n) को शब्दों में प्रदर्शित करें
// यह दस से उन्नीस तक है
अन्यथा यदि n >= 20 और n < 100, तो
tensMultiple(n/10) को शब्दों में प्रदर्शित करें
यदि n mod 10 ≠ 0, तो
numToWord(n mod 10)
अन्यथा यदि n >= 100 और n < 1000, तो
units(n/100) को शब्दों में प्रदर्शित करें
"Hundred" को शब्दों में प्रदर्शित करें
// Hundred
यदि n mod 100 ≠ 0, तो
"And" प्रदर्शित करें
numToWord(n mod 100)
अन्यथा यदि n >= 1000 और n <= 32767, तो
numToWord(n/1000)
"Thousand" प्रदर्शित करें
यदि n mod 1000 ≠ 0, तो
numToWord(n mod 1000)
अन्यथा
अमान्य संख्या प्रदर्शित करें और बाहर निकलें
End
उदाहरण (C++ कोड)
#include <iostream>
using namespace std;
string getUnit(int n) {
// एकल अंक को शब्द में लौटाएं
string unit[10] = {"Zero", "One","Two", "Three","Four","Five", "Six","Seven","Eight","Nine"};
return unit[n];
}
string getTwoDigits(int n) {
// यहाँ n 2 अंकों की संख्या है
string td[10] = {"Ten", "Eleven","Twelve","Thirteen", "Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
return td[n%10];
}
string getTenMul(int n) {
// यहाँ n 10 का गुणक है
string tm[8] = {"Twenty", "Thirty","Fourty", "Fifty","Sixty", "Seventy","Eighty","Ninty"};
return tm[n-2];
}
string getTenPow(int pow) {
// दस की घात शब्दों में
string power[2] = {"Hundred", "Thousand"};
return power[pow-2];
}
void printNumToWord(int n) {
if (n >= 0 && n < 10)
cout << getUnit(n) << " "; // इकाई मानों को शब्द में
else if (n >= 10 && n < 20)
cout << getTwoDigits(n) << " "; // ग्यारह से उन्नीस तक
else if (n >= 20 && n < 100) {
cout << getTenMul(n/10) << " ";
if (n%10 != 0)
printNumToWord(n%10); // संख्या को शब्द में बदलने के लिए पुनरावर्ती कॉल
}
else if (n >= 100 && n < 1000) {
cout << getUnit(n/100) << " ";
cout << getTenPow(2) << " "; // Hundred
if (n%100 != 0) {
cout << "And ";
printNumToWord(n%100);
}
}
else if (n >= 1000 && n <= 32767) {
printNumToWord(n/1000);
cout << getTenPow(3) << " "; // Thousand
if (n%1000 != 0)
printNumToWord(n%1000);
}
else
printf("Invalid Input");
}
int main() {
int number;
cout << "Enter a number between 0 to 32767: "; cin >> number;
printNumToWord(number);
}
आउटपुट
Enter a number between 0 to 32767: 568 Five Hundred And Sixty Eight