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>
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); } }
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)
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