अंग्रेजी शब्दहरूमा पूर्णांक


कठिनाई तह हार्ड
बारम्बार सोधिन्छ अमेजन फेसबुक माइक्रोसफ्ट बजेट
घागो

समस्यामा "अ words्ग्रेजी शव्दहरूमा पूर्णांक" हामीले एक नकारात्मक negativeणात्मक पूर्णाger्क र कार्यहरूलाई त्यो संख्यात्मक शब्दहरूमा रूपान्तरण गर्ने कार्य दियौं वा हामी एउटा नम्बर, कुनै पनि नम्बरको इनपुट प्राप्त गर्छौं, र हाम्रो कार्य भनेको त्यो नम्बरलाई एक संख्यामा प्रतिनिधित्व गर्नु हो। string फारम। एउटा उदाहरण हेरौं, नम्बर "765" लाई "सात सय छत्तीस" को रुपमा प्रतिनिधित्व गर्नुपर्नेछ। त्यसैले हामी एउटा नम्बर मा प्रत्येक विशिष्ट नम्बर संग सम्झौता प्राप्त।

उदाहरणका

इनपुट:

123

उत्पादन:

एक सय तेईस

इनपुट:

4517

उत्पादन:

चार हजार पाँच सौ सत्रह

तपाईले कुनै ईन्टिजरलाई यसको संख्यात्मक शब्द फारममा रूपान्तरण गर्न एउटा प्रोग्राम लेख्नुपर्दछ

अल्गोरिदम

  1. लामो इन्टिजर भ्यारीएबल घोषणा गर्नुहोस् र इनपुट पाउनुहोस्।
  2. घोषणा एक array एक ठाउँको लागि र सबै शब्दहरू त्यसमा शब्दहरू आरम्भ गर्नुहोस्, र अर्को एर्रेट दश ठाउँका लागि र दशौं स्थान शब्दहरूको साथ आरम्भ गर्नुहोस् कोडमा लेखिएको रूपमा।
  3. उपयुक्त संख्याको फंक्शनमा त्यस संख्याको लाभांश पास गर्नुहोस् जुन पाउन सकिन्छ र शब्दहरू पाउन र यसलाई अस्थायी स्ट्रि toमा थप्न सक्नुहुन्छ।
  4. त्यो अस्थायी स्ट्रि Return फिर्ता गर्नुहोस्।
  5. प्रकार्यले व्यक्तिहरूमा काम गर्दछ र दशौं ठाउँहरूले यसको लागि एरेबाट उपयुक्त शब्दहरू लिन सक्दछ र स्ट्रिंग परिणाममा भण्डारण गर्दछ।
  6. र यो संख्याको लागि एक ठाउँमा आउँदा यो स्ट्रिंग जोड्न जारी राख्नेछ।
  7. र हामी संख्याको आउटपुट प्राप्त गर्छौं जुन स्ट्रि asको रूपमा प्रतिनिधित्व गर्दछ।

स्पष्टीकरण

हाम्रो मुख्य विचार अधिकतम मानबाट सुरु गर्नु हो। त्यसोभए दुई एर्रे घोषित गरियो जसमा एकले सबै शब्दहरू भण्डार गर्दछ जुन २० भन्दा कम छन्। र ती जसले सबै मानहरू भण्डार गर्दछन् जसमा सबैको १० को गुणनहरू भण्डार हुन्छन् जुन १०० भन्दा कम हो, कोडमा लेखिएको छ।

त्यसोभए हामी यस मार्फत उदाहरणका साथ जानेछौं।

इनपुट 56543 XNUMX। को रूपमा दिइन्छ

हामी इनपुट लिन्छौं र यसलाई हाम्रो फंक्शन getWords मा पास गर्छौं जहाँ हामी स्ट्रिंग परिणाम घोषित गर्छौं र हामी लाभांश पास गर्न लाग्छौं। त्यसो भए पहिले यो पास हुन गइरहेको छ जसले नम्बरलाई १००००००० मा विभाजित गर्दछ र हामी लाभांश पाउँछौं ० स्ट्रिंग करोडको साथ ० ० पास। यो शब्दहरूको फंक्शनमा आउँदछ जहाँ यसले ० जाँच गर्दछth टेन्स र स्थानहरूको स्थान जहाँ यसले केहि पनि फेला पार्दैन र अब खाली टेम्प स्ट्रिंगको साथ फर्काउँछ।

अब, यो संख्यालाई पास गर्न गइरहेको छ जसले नम्बरलाई १००००० र १०० मा मोड्युलर विभाजित गर्दछ र हामी लाभांश पाउँछौं ० स्ट्रि lakh लाखको साथ ०. पास हुन्छ। यो शब्दहरूको फंक्शनमा आउँदछ जहाँ यसले ० जाँच गर्दछth टेन्स र स्थानहरूको ठाउँमा यसले केहि पनि फेला पार्दैन र अब खाली टेम्पिंग स्ट्रिंगको साथ फर्कन्छ।

त्यसो भए अब यो संख्या पास गर्न गइरहेको छ जसले नम्बरलाई १००० र मोड्युलर १०० बाट भाग गर्छ र हामी लाभांश पाउँछौं ०, string 1000 पास हुन्छ स्ट्रि thousand हजारको साथ। यो वर्ड्स फंक्शनमा आउनेछ जहाँ यसले डिभिडन्ड nd लाई लिन्छ र बाँकी as लाई स्ट्रिंग पाससहित हजारको रूपमा लिन्छ, यी सबै अस्थायी स्ट्रि atमा भण्डार हुन्छन् जुन “छप्पन हजार” हो र परिणाममा फर्किन्छ।

अब यो नम्बर पास गर्न गइरहेको छ जसले नम्बर १०० र १० मा मोड्युलर विभाजित गर्दछ र हामी लाभांश पाउँछौं string अब स्ट्रि hundred सयको साथ passes पास हुन्छ। यो वर्ड्स फंक्शनमा आउँनेछ जहाँ यसले लाभांश takes लिन्छ र बाँकी रहेका ० लाई स्ट्रि the सयको रूपमा पारित हुन्छ त्यसैले एरेमा खोजी गरेपछि यसलाई अस्थायी स्ट्रि inमा थपेर “छप्पन हजार hundred सय” हुन्छ।

अब यदि ब्लक जाँच गरे पछि, यसले प्रिन्ट गर्नेछ “र” र अब फेरि। यो नम्बर पास गर्न गइरहेको छ जुन १०० सँग मोड्युलर हुन्छ र passes 100 पास हुन्छ। र हामी as को रूपमा डिभिडन्ड र 43 को रूपमा बाँकी हुन्छौं जुन अस्थायी स्ट्रि inमा भण्डार गरिएको छ। दिईएको संख्या र परिणाममा अस्थायी प्रतिफलका लागि शब्दहरू फेला पारे पछि।

र अब परिणाम "छप्पन छ हजार पाँच सय forty forty three" हुन्छ।

कार्यान्वयन

C ++ प्रोग्राम अंग्रेजीमा पूर्णांकको लागि

#include <iostream>
using namespace std;

string ones_place[] = { "", "one ", "two ", "three ", "four ",
                        "five ", "six ", "seven ", "eight ",
                        "nine ", "ten ", "eleven ", "twelve ",
                        "thirteen ", "fourteen ", "fifteen ",
                        "sixteen ", "seventeen ", "eighteen ",
                        "nineteen "
                      };

string tens_place[] = { "", "", "twenty ", "thirty ", "forty ",
                        "fifty ", "sixty ", "seventy ", "eighty ",
                        "ninety "
                      };

string Words(int num, string s)
{
    string temp = "";
    if (num > 19)
    {
        temp += tens_place[num / 10] + ones_place[num % 10];
    }
    else
    {
        temp += ones_place[num];
    }
    if (num)
    {
        temp += s;
    }
    return temp;
}

string getWords(long number)
{
    string result;
    result += Words((number / 10000000), "crore ");

    result += Words(((number / 100000) % 100), "lakh ");

    result += Words(((number / 1000) % 100), "thousand ");

    result += Words(((number / 100) % 10), "hundred ");

    if (number> 100 && number % 100)
    {
        result += "and ";
    }
    result += Words((number % 100), "");

    return result;
}
int main()
{
    cout << getWords(4517) << endl;
    return 0;
}
four thousand five hundred and seventeen

अंग्रेजी शब्दहरूको पूर्णांकको लागि जाभा प्रोग्राम

import java.text.DecimalFormat;

public class Integer_to_words {

  private static final String[] tens_names = {
    "", " ten", " twenty",
    " thirty", " forty", " fifty", " sixty", " seventy", " eighty",
    " ninety"
  };

  private static final String[] num_Names = {
    "", " one", " two", " three",
    " four", " five", " six", " seven", " eight", " nine", " ten",
    " eleven", " twelve", " thirteen", " fourteen", " fifteen",
    " sixteen", " seventeen", " eighteen", " nineteen"
  };

  private static String Upto_one_thousand(int number) {
    String soFar;

    if (number % 100<20) {
      soFar = num_Names[number % 100];
      number /= 100;
    } else {
      soFar = num_Names[number % 10];
      number /= 10;

      soFar = tens_names[number % 10] + soFar;
      number /= 10;
    }
    if (number == 0)
      return soFar;
    return num_Names[number] + " hundred" + soFar;
  }

  public static String convert(long number) {
    // 0 to 999 999 999 999
    if (number == 0) {
      return "zero";
    }

    String snumber = Long.toString(number);

    // pad with "0"
    String mask = "000000000000";
    DecimalFormat df = new DecimalFormat(mask);
    snumber = df.format(number);

    // XXXnnnnnnnnn
    int billions = Integer.parseInt(snumber.substring(0, 3));
    // nnnXXXnnnnnn
    int millions = Integer.parseInt(snumber.substring(3, 6));
    // nnnnnnXXXnnn
    int hundredThousands = Integer.parseInt(snumber.substring(6, 9));
    // nnnnnnnnnXXX
    int thousands = Integer.parseInt(snumber.substring(9, 12));

    String tradBillions;
    switch (billions) {
      case 0:
        tradBillions = "";
        break;
      case 1:
        tradBillions = Upto_one_thousand(billions) + " billion ";
        break;
      default:
        tradBillions = Upto_one_thousand(billions) + " billion ";
    }
    String result = tradBillions;

    String tradMillions;
    switch (millions) {
      case 0:
        tradMillions = "";
        break;
      case 1:
        tradMillions = Upto_one_thousand(millions) + " million ";
        break;
      default:
        tradMillions = Upto_one_thousand(millions) + " million ";
    }
    result = result + tradMillions;

    String tradHundredThousands;
    switch (hundredThousands) {
      case 0:
        tradHundredThousands = "";
        break;
      case 1:
        tradHundredThousands = "one thousand ";
        break;
      default:
        tradHundredThousands = Upto_one_thousand(hundredThousands) +
          " thousand ";
    }
    result = result + tradHundredThousands;

    String tradThousand;
    tradThousand = Upto_one_thousand(thousands);
    result = result + tradThousand;

    // remove extra spaces!
    return result.replaceAll("^\\s+", "").replaceAll("\\b\\s{2,}\\b", " ");
  }

  public static void main(String[] args) {
    System.out.println(convert(4517));
  }
}
four thousand five hundred seventeen

अंग्रेजी शब्दहरूको पूर्णांकको लागि जटिलता विश्लेषण

समय जटिलता

लूप निरन्तर समयको लागि चलेको छ त्यसैले जटिलता हुनेछ O (१)

सहायक स्पेस

सहयोगी ठाउँ छ O (१) कुनै अतिरिक्त ठाउँको आवश्यक छ।