プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

数値から単語への変換


このアルゴリズムは、指定された数値を英語の単語に変換します。 564のように五百六十四になります。

このアルゴリズムでは、いくつかの事前定義された文字列が与えられ、そのリストから、適切な単語を取得して単語にします。

リストは次のようなものです

  • 単位: ゼロ、ワン…ナインなどの(0から9)のすべての単語を保持します
  • twoDigits: 10、11…19など、(10〜19)のすべての数値を保持します
  • tenMul: 10の倍数の場合、(20-90)、たとえば20、30、…90。
  • tenPower: これは、10の2と3のパワーとして数百と数千のためのものです

入力と出力

Input:
The number: 568
Output:
Five Hundred And Sixty Eight

アルゴリズム

numToWord(num)

さまざまな整数の単語を保持するリストがいくつかあります

入力: 番号。

出力: 数字を単語で表現します。

Begin
   if n >= 0 and n < 10, then
      display units(n) into words
   else if n >= 10 and n < 20, then
      display twoDigitNum(n) into words         //It is from ten to nineteen
   else if n >= 20 and n <100, then
      display tensMultiple(n/10), into words
      if n mod 10 ≠ 0, then
         numToWord(n mod 10)
   else if n >= 100 and n < 1000, then
      display units(n/100), into words
      display “Hundred”, into words      //Hundred
      if n mod 100 ≠ 0, then
         display “And”
         numToWord(n mod 100)
      else if n >= 1000 and n <= 32767, then
         numToWord(n/1000)
         display “Thousand”
         if n mod 1000 ≠ 0, then
            numToWord(n mod 1000)
      else
         display invalid number and exit
End

#include<iostream>
using namespace std;

string getUnit(int n) {
    //Return single digit to word
   string unit[10] = {"Zero", "One","Two", "Three","Four","Five", "Six","Seven","Eight","Nine"};
   return unit[n];
}

string getTwoDigits(int n) {
   //Here n is 2 digit number
   string td[10] = {"Ten", "Eleven","Twelve","Thirteen", "Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
   return td[n%10];
}

string getTenMul(int n) {
   //Here n is multiple of 10
   string tm[8] = {"Twenty", "Thirty","Fourty", "Fifty","Sixty", "Seventy","Eighty","Ninty"};
   return tm[n-2];
}

string getTenPow(int pow) {
   //The power of ten in words
   string power[2] = {"Hundred", "Thousand"};
   return power[pow-2];
}

void printNumToWord(int n) {
   if(n >= 0 && n < 10)
      cout << getUnit(n) << " ";      //Unit values to word
   else if(n >= 10 && n < 20)
      cout << getTwoDigits(n) << " ";       //from eleven to nineteen
   else if(n >= 20 && n < 100) {
      cout << getTenMul(n/10)<<" ";
      if(n%10 != 0)
         printNumToWord(n%10); //Recursive call to convert num to word
   }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

  1. C++での10進数から2進数への変換プログラム

    10進数を入力として指定すると、タスクは指定された10進数を2進数に変換することです。 コンピューターの10進数は10進数で表され、2進数は2進数の0と1の2つしかないため、2進数で表されますが、10進数は0〜9から始まる任意の数値にすることができます。 10進数を2進数に変換するには、次の手順に従います- まず、指定された数値を変換数値の基本値で除算します。例: 42を2を底とする2進数に変換し、商を取得して格納する必要があるため、42を2で除算します。余りが0の場合、ビットを0として格納します。それ以外の場合は1です。 取得した商を2進数の基数である2で除算し、ビットを格納し続けます

  2. Wordでカスタムページ番号を追加、削除、または挿入する方法

    ページ番号を追加または削除する場合 またはWordにカスタムページ番号を挿入 ドキュメントの場合は、このチュートリアルに従う必要があります。特定の桁からページ番号を開始する場合でも、ページ番号を完全に非表示にする場合でも、ステップバイステップガイドを使用してすべてを行うことができます。簡単で、サードパーティのツールを使用する必要はありません。 どんな変更を加えても、最初にドキュメントの編集を終了する必要があります。そうしないと、ページ番号を追加または削除するときに問題が発生する可能性があります。すでにすべての編集を完了している場合は、先に進んでこれらのガイドに従って、必要な変更を加えることが