Contar dígitos pares e impares en un entero

Se da un cierto número y la tarea es contar los dígitos pares y los dígitos impares del número y también los dígitos pares están presentes incluso un número de veces y, de manera similar, para los números impares. 

Print Yes If:
   If number contains even digits even number of time
   Odd digits odd number of times
Else 
   Print No

Ejemplos:

Input : 22233
Output : NO
         count_even_digits = 3
         count_odd_digits = 2
         In this number even digits occur odd number of times and odd 
         digits occur even number of times so its print NO.

Input : 44555
Output : YES
        count_even_digits = 2
        count_odd_digits = 3
        In this number even digits occur even number of times and odd 
        digits occur odd number of times so its print YES.

Solución eficiente para calcular dígitos pares e impares en un número.  

C++

// C++ program to count
// even and odd digits
// in a given number
#include <iostream>
using namespace std;
 
// Function to count digits
int countEvenOdd(int n)
{
    int even_count = 0;
    int odd_count = 0;
    while (n > 0)
    {
        int rem = n % 10;
        if (rem % 2 == 0)
            even_count++;
        else
            odd_count++;
        n = n / 10;
    }
    cout << "Even count : "
         << even_count;
    cout << "\nOdd count : "
         << odd_count;
    if (even_count % 2 == 0 &&
        odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
// Driver Code
int main()
{
    int n;
    n = 2335453;
    int t = countEvenOdd(n);
    if (t == 1)
        cout << "\nYES" << endl;
    else
        cout << "\nNO" << endl;
    return 0;
}

Java

// Java program to count
// even and odd digits
// in a given number
 
import java.io.*;
 
class GFG
{
     
// Function to count digits
static int countEvenOdd(int n)
{
    int even_count = 0;
    int odd_count = 0;
    while (n > 0)
    {
        int rem = n % 10;
        if (rem % 2 == 0)
            even_count++;
        else
            odd_count++;
        n = n / 10;
    }
    System.out.println ( "Even count : " +
                              even_count);
    System.out.println ( "Odd count : " +
                              odd_count);
    if (even_count % 2 == 0 &&
         odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
    // Driver Code
    public static void main (String[] args)
    {
    int n;
    n = 2335453;
    int t = countEvenOdd(n);
     
    if (t == 1)
        System.out.println ( "YES" );
    else
        System.out.println( "NO") ;
         
    }
}

Python3

# python program to count even and
# odd digits in a given number
 
# Function to count digits
def countEvenOdd(n):
     
    even_count = 0
    odd_count = 0
    while (n > 0):
        rem = n % 10
        if (rem % 2 == 0):
            even_count += 1
        else:
            odd_count += 1
             
        n = int(n / 10)
     
    print( "Even count : " , even_count)
    print("\nOdd count : " , odd_count)
    if (even_count % 2 == 0 and
                    odd_count % 2 != 0):
        return 1
    else:
        return 0
 
# Driver code
n = 2335453;
t = countEvenOdd(n);
 
if (t == 1):
    print("YES")
else:
    print("NO")
 
# This code is contributed by Sam007.

C#

// C# program to count even and
// odd digits in a given number
using System;
 
class GFG {
     
// Function to count digits
static int countEvenOdd(int n)
{
    int even_count = 0;
    int odd_count = 0;
    while (n > 0) {
        int rem = n % 10;
        if (rem % 2 == 0)
            even_count++;
        else
            odd_count++;
        n = n / 10;
    }
     
    Console.WriteLine("Even count : " +
                       even_count);
    Console.WriteLine("Odd count : " +
                       odd_count);
    if (even_count % 2 == 0 &&
        odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
    // Driver Code
    public static void Main ()
    {
            int n;
            n = 2335453;
            int t = countEvenOdd(n);
            if (t == 1)
                Console.WriteLine ("YES");
            else
                Console.WriteLine("NO") ;
             
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP program to count
// even and odd digits
// in a given number
 
// Function to count digits
function countEvenOdd($n)
{
    $even_count = 0;
    $odd_count = 0;
    while ($n > 0)
    {
        $rem = $n % 10;
        if ($rem % 2 == 0)
            $even_count++;
        else
            $odd_count++;
        $n = (int)($n / 10);
    }
    echo("Even count : " .
             $even_count);
    echo("\nOdd count : " .
               $odd_count);
    if ($even_count % 2 == 0 &&
        $odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
// Driver code
$n = 2335453;
$t = countEvenOdd($n);
if ($t == 1)
    echo("\nYES");
else
    echo("\nNO");
 
// This code is contributed by Ajit.
?>

Javascript

<script>
 
/// Javascript program to count
// even and odd digits
// in a given number
 
// Function to count digits
function countEvenOdd(n)
{
    let even_count = 0;
    let odd_count = 0;
    while (n > 0)
    {
        let rem = n % 10;
        if (rem % 2 == 0)
            even_count++;
        else
            odd_count++;
        n = Math.floor(n / 10);
    }
    document.write("Even count : "
        + even_count);
    document.write("<br>" + "Odd count : "
        + odd_count);
    if (even_count % 2 == 0 &&
        odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
// Driver Code
 
    let n;
    n = 2335453;
    let t = countEvenOdd(n);
    if (t == 1)
        document.write("<br>" + "YES" + "<br>");
    else
        document.write("<br>"+"NO" + "<br>");
 
// This code is contributed by Mayank Tyagi
 
</script>
Producción

Even count : 2
Odd count : 5
YES

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(1)

Otra solución para resolver este problema es una array o string de caracteres.

C++

// C++ program to count
// even and odd digits
// in a given number
// using char array
#include <bits/stdc++.h>
using namespace std;
 
// Function to count digits
int countEvenOdd(char num[],
                 int n)
{
    int even_count = 0;
    int odd_count = 0;
    for (int i = 0; i < n; i++)
    {
        int x = num[i] - 48;
        if (x % 2 == 0)
            even_count++;
        else
            odd_count++;
    }
    cout << "Even count : "
         << even_count;
    cout << "\nOdd count : "
         << odd_count;
 
    if (even_count % 2 == 0 &&
        odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
// Driver Code
int main()
{
    char num[18] = { 1, 2, 3 };
 
    int n = strlen(num);
    int t = countEvenOdd(num, n);
    if (t == 1)
        cout << "\nYES" << endl;
    else
        cout << "\nNO" << endl;
    return 0;
}

Java

// Java program to count
// even and odd digits
// in a given number
// using char array
 
import java.io.*;
 
 
class GFG
{
     
// Function to count digits
static int countEvenOdd(char num[],
                        int n)
{
    int even_count = 0;
    int odd_count = 0;
    for (int i = 0; i < n; i++)
    {
        int x = num[i] - 48;
        if (x % 2 == 0)
            even_count++;
        else
            odd_count++;
    }
 
    System.out.println ("Even count : " +
                         even_count);
    System.out.println( "Odd count : " +
                         odd_count);
 
    if (even_count % 2 == 0 &&
        odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
    // Driver Code
    public static void main (String[] args)
    {
        char num[] = { 1, 2, 3 };
 
    int n = num.length;
    int t = countEvenOdd(num, n);
    if (t == 1)
        System.out.println("YES") ;
    else
        System.out.println("NO") ;
    }
}
 
// This code is contributed by vt_m

Python3

# Python3 program to count
# even and odd digits
# in a given number
# using char array
 
# Function to count digits
def countEvenOdd(num, n):
    even_count = 0;
    odd_count = 0;
    num=list(str(num))
    for i in num:
        if i in ('0','2','4','6','8'):
            even_count+=1
        else:
            odd_count+=1
    print("Even count : ",
              even_count);
    print("Odd count : ",
              odd_count);
    if (even_count % 2 == 0 and
        odd_count % 2 != 0):
        return 1;
    else:
        return 0;
 
# Driver Code
num = (1, 2, 3);
n = len(num);
t = countEvenOdd(num, n);
 
if t == 1:
    print("YES");
else:
    print("NO");
     
# This code is contributed by mits.

C#

// C# program to count
// even and odd digits
// in a given number
// using char array
using System;
 
class GFG
{
     
    // Function to count digits
    static int countEvenOdd(char []num,
                            int n)
    {
        int even_count = 0;
        int odd_count = 0;
        for (int i = 0; i < n; i++)
        {
            int x = num[i] - 48;
            if (x % 2 == 0)
                even_count++;
            else
                odd_count++;
        }
     
        Console.WriteLine("Even count : " +
                               even_count);
                             
        Console.WriteLine( "Odd count : " +
                                odd_count);
     
        if (even_count % 2 == 0 &&
            odd_count % 2 != 0)
            return 1;
        else
            return 0;
    }
 
    // Driver code
    public static void Main ()
    {
        char [] num = { '1', '2', '3' };
     
        int n = num.Length;
        int t = countEvenOdd(num, n);
         
        if (t == 1)
            Console.WriteLine("YES") ;
        else
            Console.WriteLine("NO") ;
    }
}
 
// This code is contributed by Sam007.

PHP

<?php
// PHP program to count
// even and odd digits
// in a given number
// using char array
 
 
// Function to count digits
function countEvenOdd($num, $n)
{
     
    $even_count = 0;
    $odd_count = 0;
    for ($i = 0; $i < $n; $i++)
    {
        $x = $num[$i] - 48;
        if ($x % 2 == 0)
            $even_count++;
        else
            $odd_count++;
    }
    echo "Even count : " .
          $even_count;
    echo "\nOdd count : " .
            $odd_count;
 
    if ($even_count % 2 == 0 &&
        $odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
    // Driver Code
    $num = array( 1, 2, 3 );
 
    $n = strlen(num);
    $t = countEvenOdd($num, $n);
    if ($t == 1)
        echo "\nYES" ,"\n";
    else
        echo "\nNO" ,"\n";
 
// This code is contributed by ajit.
?>

Javascript

<script>
 
// Javascript program to count
// even and odd digits
// in a given number
// using char array
 
// Function to count digits
function countEvenOdd(num, n)
{
    even_count = 0;
    odd_count = 0;
     
    for(var i = 0; i < n; i++)
    {
        x = num[i] - 48;
        if (x % 2 == 0)
            even_count++;
        else
            odd_count++;
    }
     
    document.write("Even count : " +
                   even_count);
    document.write("<br>Odd count : " +
                   odd_count);
  
    if (even_count % 2 == 0 &&
        odd_count % 2 != 0)
        return 1;
    else
        return 0;
}
 
// Driver code
var num = [ 1, 2, 3 ];
n = num.length;
t = countEvenOdd(num, n);
 
if (t == 1)
    document.write("<br>YES <br>");
else
    document.write("<br>NO <br>");
     
// This code is contributed by akshitsaxenaa09
 
</script>
Producción

Even count : 1
Odd count : 2
NO

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(1)

Método n.º 3: uso de encasillamiento (enfoque simplificado):

  • Tenemos que convertir el número dado en una string tomando una nueva variable.
  • Atraviese la string, convierta cada elemento en un número entero.
  • Si el carácter (dígito) es par, entonces el conteo aumentado
  • De lo contrario, incremente el conteo impar.
  • Si el conteo par es par y el conteo impar es impar, entonces imprima Sí.
  • De lo contrario, imprima no.

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

C++

// C++ implementation of above approach
#include<bits/stdc++.h>
using namespace std;
 
string getResult(int n)
{
 
  // Converting integer to String
  string st = to_string(n);
  int even_count = 0;
  int odd_count = 0;
 
  // Looping till length of String
  for(int i = 0; i < st.length(); i++)
  {
    if ((st[i] % 2) == 0)
 
      // Digit is even so increment even count
      even_count += 1;
    else
      odd_count += 1;
  }
 
  // Checking even count is even and
  // odd count is odd
  if (even_count % 2 == 0 &&
      odd_count % 2 != 0)
    return "Yes";
  else
    return "no";
}
 
// Driver Code
int main(){
 
  int n = 77788;
 
  // Passing this number to get result function
  cout<<getResult(n)<<endl;
 
}
 
// This code is contributed by shinjanpatra.

Java

// Java implementation of above approach
class GFG{
     
static String getResult(int n)
{
     
    // Converting integer to String
    String st = String.valueOf(n);
    int even_count = 0;
    int odd_count = 0;
     
    // Looping  till length of String
    for(int i = 0; i < st.length(); i++)
    {
        if ((st.charAt(i) % 2) == 0)
         
            // Digit is even so increment even count
            even_count += 1;
        else
            odd_count += 1;
    }
     
    // Checking even count is even and
    // odd count is odd
    if (even_count % 2 == 0 &&
         odd_count % 2 != 0)
        return "Yes";
    else
        return "no";
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 77788;
     
    // Passing this number to get result function
    System.out.println(getResult(n));
 
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python implementation of above approach
def getResult(n):
   
    # Converting integer to string
    st = str(n)
    even_count = 0
    odd_count = 0
     
    # Looping  till length of string
    for i in range(len(st)):
       
        if((int(st[i]) % 2) == 0):
             
            # digit is even so increment even count
            even_count += 1
        else:
            odd_count += 1
 
    # Checking even count is even and odd count is odd
    if(even_count % 2 == 0 and odd_count % 2 != 0):
        return 'Yes'
    else:
        return 'no'
 
 
# Driver Code
n = 77788
 
# passing this number to get result function
print(getResult(n))
 
# this code is contributed by vikkycirus

C#

// C# implementation of above approach
using System;
using System.Collections.Generic;
 
class GFG{
     
static String getResult(int n)
{
     
    // Converting integer to String
    String st = String.Join("",n);
    int even_count = 0;
    int odd_count = 0;
     
    // Looping  till length of String
    for(int i = 0; i < st.Length; i++)
    {
        if ((st[i] % 2) == 0)
         
            // Digit is even so increment even count
            even_count += 1;
        else
            odd_count += 1;
    }
     
    // Checking even count is even and
    // odd count is odd
    if (even_count % 2 == 0 &&
         odd_count % 2 != 0)
        return "Yes";
    else
        return "no";
}
 
// Driver Code
public static void Main(String[] args)
{
    int n = 77788;
     
    // Passing this number to get result function
    Console.WriteLine(getResult(n));
 
}
}
 
// This code is contributed by Princi Singh

Javascript

<script>
 
// Javascript implementation of above approach
 
 
function getResult(n)
{
     
    // Converting integer to String
    var st = n.toString();
    var even_count = 0;
    var odd_count = 0;
     
    // Looping  till length of String
    for(var i = 0; i < st.length; i++)
    {
        if ((st.charAt(i) % 2) == 0)
         
            // Digit is even so increment even count
            even_count += 1;
        else
            odd_count += 1;
    }
     
    // Checking even count is even and
    // odd count is odd
    if (even_count % 2 == 0 &&
         odd_count % 2 != 0)
        return "Yes";
    else
        return "no";
}
 
// Driver Code
 
    var n = 77788;
     
    // Passing this number to get result function
    document.write(getResult(n));
     
</script>
Producción

Yes

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(1)

Este artículo es una contribución de Dharmendra kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *