Suma de todos los números palíndromos presentes en un Array

Dada una array arr[] de N enteros positivos. La tarea es encontrar la suma de todos los números palíndromos presentes en la array. Imprime la suma total.

Un número palíndromo es un número que al invertirlo es igual al número inicial. Ejemplo: 121 es palíndromo(reverse(121) = 121), 123 no es palíndromo(reverse(123) = 321). 

Nota : considere números palíndromos de longitud superior a 1 al calcular la suma.

Ejemplos: 

Input : arr[] ={12, 313, 11, 44, 9, 1} 
Output : 368

Input : arr[] = {12, 11, 121}
Output : 132

Enfoque: La idea es implementar una función inversa que invierta un número de derecha a izquierda. Implemente una función que verifique los números palíndromos y finalmente recorra la array y calcule la suma de todos los elementos que son palíndromos.

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

C++

// C++ program to calculate the sum of all
// palindromic numbers in array
#include<bits/stdc++.h>
using namespace std;
 
// Function to reverse a number n
int reverse(int n)
{
    int d = 0, s = 0;
 
    while (n > 0)
    {
        d = n % 10;
        s = s * 10 + d;
        n = n / 10;
    }
 
    return s;
}
 
// Function to check if a number n is
// palindrome
bool isPalin(int n)
{
    // If n is equal to the reverse of n
    // it is a palindrome
    return n == reverse(n);
}
 
// Function to calculate sum of all array
// elements which are palindrome
int sumOfArray(int arr[], int n)
{
    int s = 0;
 
    for (int i = 0; i < n; i++)
    {
        if ((arr[i] > 10) && isPalin(arr[i]))
        {
 
            // summation of all palindrome numbers
            // present in array
            s += arr[i];
        }
    }
    return s;
}
 
// Driver Code
int main()
{
    int n = 6;
 
    int arr[] = { 12, 313, 11, 44, 9, 1 };
 
    cout << sumOfArray(arr, n);
    return 0;
}
 
// This code is contributed by mits

Java

// Java program to calculate the sum of all
// palindromic numbers in array
 
class GFG {
 
    // Function to reverse a number n
    static int reverse(int n)
    {
        int d = 0, s = 0;
 
        while (n > 0) {
            d = n % 10;
            s = s * 10 + d;
            n = n / 10;
        }
 
        return s;
    }
 
    // Function to check if a number n is
    // palindrome
    static boolean isPalin(int n)
    {
        // If n is equal to the reverse of n
        // it is a palindrome
        return n == reverse(n);
    }
 
    // Function to calculate sum of all array
    // elements which are palindrome
    static int sumOfArray(int[] arr, int n)
    {
        int s = 0;
 
        for (int i = 0; i < n; i++) {
            if ((arr[i] > 10) && isPalin(arr[i])) {
 
                // summation of all palindrome numbers
                // present in array
                s += arr[i];
            }
        }
 
        return s;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int n = 6;
 
        int[] arr = { 12, 313, 11, 44, 9, 1 };
 
        System.out.println(sumOfArray(arr, n));
    }
}

C#

// C# program to calculate the sum of all
// palindromic numbers in array
using System;
 
class GFG
{
 
    // Function to reverse a number n
    static int reverse(int n)
    {
        int d = 0, s = 0;
 
        while (n > 0)
        {
            d = n % 10;
            s = s * 10 + d;
            n = n / 10;
        }
 
        return s;
    }
 
    // Function to check if a number n is
    // palindrome
    static bool isPalin(int n)
    {
        // If n is equal to the reverse of n
        // it is a palindrome
        return n == reverse(n);
    }
 
    // Function to calculate sum of all array
    // elements which are palindrome
    static int sumOfArray(int[] arr, int n)
    {
        int s = 0;
 
        for (int i = 0; i < n; i++)
        {
            if ((arr[i] > 10) && isPalin(arr[i]))
            {
 
                // summation of all palindrome numbers
                // present in array
                s += arr[i];
            }
        }
 
        return s;
    }
 
    // Driver Code
    public static void Main(String[] args)
    {
        int n = 6;
 
        int[] arr = { 12, 313, 11, 44, 9, 1 };
 
        Console.WriteLine(sumOfArray(arr, n));
    }
}
 
/* This code contributed by PrinciRaj1992 */

Python3

# Python3 program to calculate the sum of all
# palindromic numbers in array
 
# Function to reverse a number n
def reverse(n) :
     
    d = 0; s = 0;
 
    while (n > 0) :
 
        d = n % 10;
        s = s * 10 + d;
        n = n // 10;
 
    return s;
     
 
# Function to check if a number n is
# palindrome
def isPalin(n) :
 
    # If n is equal to the reverse of n
    # it is a palindrome
    return n == reverse(n);
 
 
# Function to calculate sum of all array
# elements which are palindrome
def sumOfArray(arr, n) :
    s = 0;
     
    for i in range(n) :
        if ((arr[i] > 10) and isPalin(arr[i])) :
         
            # summation of all palindrome numbers
            # present in array
            s += arr[i];
             
    return s;
  
 
# Driver Code
if __name__ == "__main__" :
 
    n = 6;
 
    arr = [ 12, 313, 11, 44, 9, 1 ];
 
    print(sumOfArray(arr, n));
    
    # This code is contributed by AnkitRai01

Javascript

<script>
 
// Javascript program to calculate the
// sum of all palindromic numbers in array
 
// Function to reverse a number n
function reverse( n)
{
    let d = 0, s = 0;
 
    while (n > 0)
    {
        d = n % 10;
        s = s * 10 + d;
        n = Math.floor(n / 10);
    }
    return s;
}
 
// Function to check if a number n is
// palindrome
function isPalin(n)
{
     
    // If n is equal to the reverse of n
    // it is a palindrome
    return n == reverse(n);
}
 
// Function to calculate sum of all array
// elements which are palindrome
function sumOfArray( arr, n)
{
    let s = 0;
 
    for(let i = 0; i < n; i++)
    {
        if ((arr[i] > 10) && isPalin(arr[i]))
        {
             
            // Summation of all palindrome
            // numbers present in array
            s += arr[i];
        }
    }
    return s;
}
 
// Driver Code
let n = 6;
let arr = [ 12, 313, 11, 44, 9, 1 ];
 
document.write(sumOfArray(arr, n));
 
// This code is contributed by jana_sayantan
 
</script>
Producción

368

Complejidad de tiempo: O(n * max(arr)), donde max(arr) es el elemento más grande de la array arr.

Espacio Auxiliar: O(1), ya que no se ha ocupado ningún espacio extra.

Otro enfoque :

En Java, podemos implementarlo fácilmente usando el objeto StringBuilder y el método  reverse() .

Paso 1: Obtener la entrada del usuario

Paso 2: inicialice sum=0 e itere a través de cada elemento.

Paso 3: Ahora, convierta el elemento entero en string usando Integer.toString(array[i])

Paso 4: invertirlo mediante el objeto StringBuilder usando el método reverse() y toString() se usa para convertir el objeto en una string.

Paso 5: iguale los valores de string y verifique el elemento mayor que 9. Si cumple la condición, sume los elementos.

C++

#include <bits/stdc++.h>
using namespace std;
string reverse(string str,int l,int r)
{
    while(l<r)
    {
        swap(str[l++],str[r--]);
    }
     
    return str;
}
int main()
{
    int array[]={12, 313, 11, 44, 9, 1};
    int n = sizeof(array)/sizeof(array[0]);
    int sum = 0;
    for(int i = 0; i < n; i++){
        string str = to_string(array[i]);
        string rev=reverse(str,0,str.size()-1);
        if(str == rev && array[i] > 9){
          sum=sum+array[i];
        }
    }
    cout << sum;
    return 0;
}
 
// this code is contributed by aditya942003patil

Java

/*package whatever //do not write package name here */
 
import java.io.*;
 
class GFG {
    public static void main (String[] args) {
      int array[]={12, 313, 11, 44, 9, 1};
      int n=array.length;
      int sum=0;
      for(int i=0;i<n;i++){
        String str=Integer.toString(array[i]);
        String rev=new StringBuilder(str).reverse().toString();
        if(str.equals(rev) && array[i]>9){
          sum=sum+array[i];
        }
      }
      System.out.println(sum);
    }
}
Producción

368

En Python, podemos ejecutarlo implementando el siguiente enfoque.

Paso 1: inicialice la lista o array y suma = 0.

Paso 2: iterar la lista usando for loop y convertir el elemento entero en una string usando str().

Paso 3: Invierta la string usando string_element[ : : -1].

Paso 4: iguale los valores de string y verifique el elemento mayor que 9. Si cumple la condición, sume los elementos.

Python3

# code
 
lis=[12, 313, 11, 44, 9, 1]
sum=0;
for i in lis:
  string_conversion=str(i)
  rev_string=string_conversion[ : : -1]
  if(string_conversion==rev_string and i>9):
    sum=sum+i
print(sum)
 
    
Producción

368

Complejidad de tiempo : O(n)

Publicación traducida automáticamente

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