Programa para imprimir el dígito dado en palabras

Dado un número N , la tarea es convertir cada dígito del número en palabras.
Ejemplos: 
 

Entrada: N = 1234 
Salida: Uno Dos Tres Cuatro 
Explicación: 
Cada dígito del número dado se ha convertido en su palabra correspondiente.
Entrada: N = 567 
Salida: Cinco Seis Siete 
 

Enfoque: La idea es recorrer cada dígito del número y usar switch-case . Dado que solo hay diez valores posibles para los dígitos, se pueden definir diez casos dentro de un bloque de cambio. Para cada dígito, se ejecutará su bloque de casos correspondiente y ese dígito se imprimirá en palabras.
A continuación se muestra la implementación del enfoque anterior: 
 

CPP

// C++ implementation of the above approach
 
#include "bits/stdc++.h"
using namespace std;
 
// Function to return the word
// of the corresponding digit
void printValue(char digit)
{
 
    // Switch block to check for each digit c
    switch (digit) {
 
    // For digit 0
    case '0':
        cout << "Zero ";
        break;
 
    // For digit 1
    case '1':
        cout << "One ";
        break;
 
    // For digit 2
    case '2':
        cout << "Two ";
        break;
 
    // For digit 3
    case '3':
        cout << "Three ";
        break;
 
    // For digit 4
    case '4':
        cout << "Four ";
        break;
 
    // For digit 5
    case '5':
        cout << "Five ";
        break;
 
    // For digit 6
    case '6':
        cout << "Six ";
        break;
 
    // For digit 7
    case '7':
        cout << "Seven ";
        break;
 
    // For digit 8
    case '8':
        cout << "Eight ";
        break;
 
    // For digit 9
    case '9':
        cout << "Nine ";
        break;
    }
}
 
// Function to iterate through every
// digit in the given number
void printWord(string N)
{
    int i, length = N.length();
 
    // Finding each digit of the number
    for (i = 0; i < length; i++) {
 
        // Print the digit in words
        printValue(N[i]);
    }
}
 
// Driver code
int main()
{
    string N = "123";
    printWord(N);
    return 0;
}

Java

// Java implementation of the above approach
class GFG
{
 
// Function to return the word
// of the corresponding digit
static void printValue(char digit)
{
 
    // Switch block to check for each digit c
    switch (digit)
    {
 
    // For digit 0
    case '0':
        System.out.print("Zero ");
        break;
 
    // For digit 1
    case '1':
        System.out.print("One ");
        break;
 
    // For digit 2
    case '2':
        System.out.print("Two ");
        break;
 
    // For digit 3
    case '3':
        System.out.print("Three ");
        break;
 
    // For digit 4
    case '4':
        System.out.print("Four ");
        break;
 
    // For digit 5
    case '5':
        System.out.print("Five ");
        break;
 
    // For digit 6
    case '6':
        System.out.print("Six ");
        break;
 
    // For digit 7
    case '7':
        System.out.print("Seven ");
        break;
 
    // For digit 8
    case '8':
        System.out.print("Eight ");
        break;
 
    // For digit 9
    case '9':
        System.out.print("Nine ");
        break;
    }
}
 
// Function to iterate through every
// digit in the given number
static void printWord(String N)
{
    int i, length = N.length();
 
    // Finding each digit of the number
    for (i = 0; i < length; i++)
    {
 
        // Print the digit in words
        printValue(N.charAt(i));
    }
}
 
// Driver code
public static void main(String[] args)
{
    String N = "123";
    printWord(N);
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python3 implementation of the above approach
 
# Function to return the word
# of the corresponding digit
def printValue(digit):
 
    # Switch block to check for each digit c
 
    # For digit 0
    if digit == '0':
        print("Zero ", end = " ")
 
    # For digit 1
    elif digit == '1':
        print("One ", end = " ")
 
    # For digit 2
    elif digit == '2':
        print("Two ", end = " ")
 
    #For digit 3
    elif digit=='3':
        print("Three",end=" ")
 
    # For digit 4
    elif digit == '4':
        print("Four ", end = " ")
 
    # For digit 5
    elif digit == '5':
        print("Five ", end = " ")
 
    # For digit 6
    elif digit == '6':
        print("Six ", end = " ")
 
    # For digit 7
    elif digit == '7':
        print("Seven", end = " ")
 
    # For digit 8
    elif digit == '8':
        print("Eight", end = " ")
 
    # For digit 9
    elif digit == '9':
        print("Nine ", end = " ")
 
# Function to iterate through every
# digit in the given number
def printWord(N):
    i = 0
    length = len(N)
 
    # Finding each digit of the number
    while i < length:
         
        # Print the digit in words
        printValue(N[i])
        i += 1
 
# Driver code
N = "123"
printWord(N)
 
# This code is contributed by mohit kumar 29

C#

// C# implementation of the above approach
using System;
 
class GFG
{
 
    // Function to return the word
    // of the corresponding digit
    static void printValue(char digit)
    {
     
        // Switch block to check for each digit c
        switch (digit)
        {
     
        // For digit 0
        case '0':
            Console.Write("Zero ");
            break;
     
        // For digit 1
        case '1':
            Console.Write("One ");
            break;
     
        // For digit 2
        case '2':
            Console.Write("Two ");
            break;
     
        // For digit 3
        case '3':
            Console.Write("Three ");
            break;
     
        // For digit 4
        case '4':
            Console.Write("Four ");
            break;
     
        // For digit 5
        case '5':
            Console.Write("Five ");
            break;
     
        // For digit 6
        case '6':
            Console.Write("Six ");
            break;
     
        // For digit 7
        case '7':
            Console.Write("Seven ");
            break;
     
        // For digit 8
        case '8':
            Console.Write("Eight ");
            break;
     
        // For digit 9
        case '9':
            Console.Write("Nine ");
            break;
        }
    }
     
    // Function to iterate through every
    // digit in the given number
    static void printWord(string N)
    {
        int i, length = N.Length;
     
        // Finding each digit of the number
        for (i = 0; i < length; i++)
        {
     
            // Print the digit in words
            printValue(N[i]);
        }
    }
     
    // Driver code
    public static void Main()
    {
        string N = "123";
        printWord(N);
    }
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
 
      // JavaScript implementation of
      // the above approach
 
      // Function to return the word
      // of the corresponding digit
      function printValue(digit) {
        // Switch block to check for
        // each digit c
        switch (digit) {
          // For digit 0
          case "0":
            document.write("Zero ");
            break;
 
          // For digit 1
          case "1":
            document.write("One ");
            break;
 
          // For digit 2
          case "2":
            document.write("Two ");
            break;
 
          // For digit 3
          case "3":
            document.write("Three ");
            break;
 
          // For digit 4
          case "4":
            document.write("Four ");
            break;
 
          // For digit 5
          case "5":
            document.write("Five ");
            break;
 
          // For digit 6
          case "6":
            document.write("Six ");
            break;
 
          // For digit 7
          case "7":
            document.write("Seven ");
            break;
 
          // For digit 8
          case "8":
            document.write("Eight ");
            break;
 
          // For digit 9
          case "9":
            document.write("Nine ");
            break;
        }
      }
 
      // Function to iterate through every
      // digit in the given number
      function printWord(N) {
        var i,
          length = N.length;
 
        // Finding each digit of the number
        for (i = 0; i < length; i++) {
          // Print the digit in words
          printValue(N[i]);
        }
      }
 
      // Driver code
      var N = "123";
      printWord(N);
       
</script>
Producción

One Two Three 

Enfoque recursivo

Enfoque: la idea es llamar recursivamente a la función hasta que el número se convierta en cero dividiéndolo por 10 y almacenando el resto en una variable. Luego imprimimos el dígito de la array de strings, ya que el dígito almacenará el índice del número que se imprimirá de la array.  

imprimimos el número después de la llamada recursiva para mantener el orden de los dígitos en el número de entrada, si imprimimos antes de la llamada de función recursiva, el nombre del dígito se imprimirá en orden inverso.

Como estamos dividiendo n entre 10 en cada llamada recursiva, la relación de recurrencia será T(n) = T(n/10) + 1

Complejidad de tiempo = O (log n)  

A continuación se muestra la implementación del enfoque anterior: 

C++

//C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
 
void ToDigits(int n, string arr[])
{
 
    // base case
    if (n == 0) {
        return;
    }
 
    // storing the last digit of the number and updating
    // number
    int digit = n % 10;
    n = n / 10;
 
    // recursive call
    ToDigits(n, arr);
 
    // printing the digits form the string array storing name
    // of the given index
    cout << arr[digit] << " ";
}
 
int main()
{
 
    string arr[10]
        = { "zero", "one", "two",   "three", "four",
            "five", "six", "seven", "eight", "nine" };
    int n;
    n = 123;  //it can be changed to take user input
 
    ToDigits(n, arr);
 
    return 0;
}
//This code is contributed by rahulpatel43433

Java

/*package whatever //do not write package name here */
import java.io.*;
 
class GFG {
  static void ToDigits(int n, String[] arr)
  {
 
    // base case
    if (n == 0) {
      return;
    }
 
    // storing the last digit of the number and updating
    // number
    int digit = n % 10;
    n = n / 10;
 
    // recursive call
    ToDigits(n, arr);
 
    // printing the digits form the string array storing name
    // of the given index
    System.out.print(arr[digit]);
    System.out.print(" ");
  }
 
  // Driver Code
  public static void main(String args[])
  {
    String[] arr = { "zero", "one", "two",   "three", "four",    "five", "six", "seven", "eight", "nine" };
    int n = 123;  //it can be changed to take user input
 
    ToDigits(n, arr);
  }
}
 
// This code is contributed by shinjanpatra

Python3

# Python implementation of above approach
def ToDigits(n, arr):
 
    # base case
    if (n == 0):
        return
 
    # storing the last digit of the number and updating
    # number
    digit = n % 10
    n = n // 10
 
    # recursive call
    ToDigits(n, arr)
 
    # printing the digits form the string array storing name
    # of the given index
    print(arr[digit] , end = " ")
 
 
# driver code
arr = [ "zero", "one", "two", "three", "four",
            "five", "six", "seven", "eight", "nine" ]
n = 123 #it can be changed to take user input
 
ToDigits(n, arr)
 
# This code is contributed by shinjanpatra

C#

//c# implementation of above approach
using System;
  
public class GFG {
     
    static void ToDigits(int n, String[] arr)
    {
        // base case
        if (n == 0) {
            return;
        }
         
        // storing the last digit of the number and updating
        // number
        int digit = n % 10;
        n = n / 10;
         
        // recursive call
        ToDigits(n, arr);
         
        // printing the digits form the string array storing name
        // of the given index
        Console.Write(arr[digit]+" ");
    }
      
    // Driver program to test above
    public static void Main()
    {
        String[] arr = new string[10]{ "zero", "one", "two",   "three", "four", "five",
        "six", "seven", "eight", "nine" };
         
        int n;
        n = 123;  //it can be changed to take user input
         
        ToDigits(n, arr);
    }
}
// This code is contributed by aditya942003patil

Javascript

<script>
 
// JavaScript implementation of above approach
function ToDigits(n, arr)
{
 
    // base case
    if (n == 0) {
        return;
    }
 
    // storing the last digit of the number and updating
    // number
    let digit = n % 10;
    n = Math.floor(n / 10);
 
    // recursive call
    ToDigits(n, arr);
 
    // printing the digits form the string array storing name
    // of the given index
    document.write(arr[digit] , " ");
}
 
// driver code
let arr = [ "zero", "one", "two", "three", "four",
            "five", "six", "seven", "eight", "nine" ]
let n = 123; //it can be changed to take user input
 
ToDigits(n, arr);
 
// This code is contributed by shinjanpatra
 
</script>
Producción

one two three 

Artículo relacionado: Imprime dígitos individuales como palabras sin usar if o switch
 

Publicación traducida automáticamente

Artículo escrito por Akshita33Patwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *