Рубрики

Печатайте отдельные цифры как слова, не используя if или switch

Учитывая число, напечатайте слова для отдельных цифр. Не разрешается использовать if или switch.

Примеры:

Input:  n = 123
Output: One Two Three

Input:  n = 350
Output: Three Five Zero

Мы настоятельно рекомендуем вам свернуть браузер и попробовать это в первую очередь.
Идея состоит в том, чтобы использовать массив строк для хранения отображений цифр в слова. Ниже приведены шаги.

Пусть входное число будет n.

  1. Создайте массив строк для хранения преобразования цифра в слово.
  2. Создайте еще один массив цифр [] для хранения отдельных цифр n.
  3. Пройдите цифры n и сохраните их в цифрах []. Обратите внимание, что стандартный способ обхода путем повторного хранения n% 10 и выполнения n = n / 10, проходит цифры в обратном порядке.
  4. Перейдите массив цифр от конца к началу и напечатайте слова, используя сопоставление, созданное на шаге 1.

Ниже приведена реализация вышеуказанной идеи.

C ++

// C ++ программа для печати отдельных слов без if и
// без переключателя
#include <bits/stdc++.h>

using namespace std;

  
// Для сохранения отображения цифры в слово

char word[][10] = {"zero", "one", "two", "three","four",

                   "five", "six", "seven", "eight", "nine"};

  

void printWordsWithoutIfSwitch(int n)

{

    // Сохраняем отдельные цифры

    int digits[10]; // 32-битное int имеет самое большее 10 цифр

  

    int dc = 0; // Инициализировать счетчик цифр для данного числа 'n'

  

    // В приведенном ниже цикле хранятся отдельные цифры n в

    // обратный порядок. do-while используется для обработки ввода "0"

    do

    {

        digits[dc] = n%10;

        n = n/10;

        dc++;

    } while (n != 0);

  

    // Просматривать отдельные цифры и печатать слова, используя

    // слово[][]

    for (int i=dc-1; i>=0; i--)

       cout << word[digits[i]] << " ";

}

  
// Драйвер программы

int main()

{

    int n = 350;

    printWordsWithoutIfSwitch(n);

    return 0;

}

Джава

// Java-программа для печати отдельных слов без
// если и без переключателя

class GFG 

{

  
// Для сохранения отображения цифры в слово

static String word[] = {"zero", "one", "two", "three","four",

                "five", "six", "seven", "eight", "nine"};

  

static void printWordsWithoutIfSwitch(int n)

{

    // Сохраняем отдельные цифры

    int digits[] = new int[10]; // 32-битное int имеет самое большее 10 цифр

  

    int dc = 0; // Инициализировать счетчик цифр для данного числа 'n'

  

    // В приведенном ниже цикле хранятся отдельные цифры n в

    // обратный порядок. do-while используется для обработки ввода "0"

    do

    {

        digits[dc] = n % 10;

        n = n/10;

        dc++;

    } while (n != 0);

  

    // Просматривать отдельные цифры и печатать слова, используя

    // слово[][]

    for (int i = dc - 1; i >= 0; i--)

        System.out.print(word[digits[i]] + " ");

}

  
// Драйвер программы

public static void main(String[] args)

{

    int n = 350;

    printWordsWithoutIfSwitch(n);

}
}

  
// Этот код предоставлен 29AjayKumar

C #

// C # программа для печати отдельных слов без
// если и без переключателя

using System;

  

class GFG 

{

  
// Для сохранения отображения цифры в слово

static String []word = {"zero", "one", "two", "three","four",

                "five", "six", "seven", "eight", "nine"};

  

static void printWordsWithoutIfSwitch(int n)

{

    // Сохраняем отдельные цифры

    int []digits = new int[10]; // 32-битное int имеет самое большее 10 цифр

  

    int dc = 0; // Инициализировать счетчик цифр для данного числа 'n'

  

    // В приведенном ниже цикле хранятся отдельные цифры n в

    // обратный порядок. do-while используется для обработки ввода "0"

    do

    {

        digits[dc] = n % 10;

        n = n/10;

        dc++;

    } while (n != 0);

  

    // Просматривать отдельные цифры и печатать слова, используя

    // слово[][]

    for (int i = dc - 1; i >= 0; i--)

        Console.Write(word[digits[i]] + " ");

}

  
// Драйвер программы

public static void Main(String[] args)

{

    int n = 350;

    printWordsWithoutIfSwitch(n);

}
}

  
// Этот код предоставлен Rajput-Ji

python3

# Программа на Python для отдельных слов без if и
# без выключателя

  
# Для сохранения преобразования цифр в слова

word= ["zero", "one", "two", "three","four","five"

                "six", "seven", "eight", "nine"]

  

def printWordsWithoutIfSwitch(n):

  

    # Хранить отдельные цифры

    digits = [0 for i in range(10)] # 32 бита имеют не более 10 цифр

  

    dc = 0 # Инициализировать счетчик цифр для данного номера 'n'

  

    # В приведенном ниже цикле хранятся отдельные цифры n в

    # обратный порядок. do-while используется для обработки ввода "0"

    while True:

        digits[dc] = n%10

        n = n//10

        dc += 1

        if(n==0):

            break

  

    # Проходить отдельные цифры и слова с помощью

    # слово[][]

    for i in range(dc-1,-1,-1):

        print(word[digits[i]],end=" ")

  
# Драйверная программа

n = 350

printWordsWithoutIfSwitch(n)

  
# Этот код предоставлен mohit kumar 29

Выход:

Three Five Zero

Спасибо Уткаршу Триведи за предложенное решение.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Печатайте отдельные цифры как слова, не используя if или switch

0.00 (0%) 0 votes