এই অ্যালগরিদম একটি প্রদত্ত সংখ্যাকে ইংরেজি শব্দে রূপান্তর করবে। যেমন ৫৬৪ হবে Five Hundred and Sixty-Four।
এই অ্যালগরিদমের জন্য, কিছু পূর্বনির্ধারিত স্ট্রিং দেওয়া আছে, সেখান থেকে এটি উপযুক্ত শব্দগুলো বের করে শব্দ তৈরি করবে।
তালিকাগুলো হলো:
- Units: এতে (০ থেকে ৯) সব শব্দ থাকবে যেন Zero, One...Nine
- twoDigits: এতে (১০ - ১৯) সব সংখ্যা থাকবে, যেন Ten, eleven...Nineteen
- tenMul: দশের গুণিতক için, (২০-৯০), যেন Twenty, Thirty, ... Ninety।
- tenPower: এটি Hundred এবং Thousands এর জন্য ১০-এর ঘাত ২ এবং ৩
ইনপুট এবং আউটপুট
ইনপুট: সংখ্যাটি: ৫৬৮ আউটপুট: Five Hundred And Sixty Eight
অ্যালগরিদম
numToWord(num)
কিছু লিস্ট আছে যা ভিন্ন পূর্ণসংখ্যার জন্য শব্দ ধারণ করে
ইনপুট: সংখ্যাটি।
আউটপুট: সংখ্যাকে শব্দে রিপ্রেজেন্ট করুন।
শুরু
যদি 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)
অন্যথায়
অবৈধ সংখ্যা প্রদর্শন করুন এবং বের হোন
শেষ উদাহরণ
#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 ২ ডিজিট সংখ্যা string td[10] = {"Ten", "Eleven","Twelve","Thirteen", "Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"}; return td[n%10]; } string getTenMul(int n) { //এখানে n ১০-এর গুণিতক 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) << " "; if(n%100 != 0) { cout << "And "; printNumToWord(n%100); } }else if(n >= 1000 && n <= 32767) { printNumToWord(n/1000); cout <<getTenPow(3)<<" "; if(n%1000 != 0) printNumToWord(n%1000); }else printf("Invalid Input"); } 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