Dados dos enteros y , la tarea es encontrar la suma de todos los números palindrómicos dentro del rango [L, R] que son de longitud impar .
Ejemplos:
Entrada: L = 10, R = 130
Salida: 333
101 + 111 + 121 = 333
Entrada: L = 110, R = 1130
Salida: 49399
Enfoque: iterar de a y para cada número, verificar si es un palíndromo y si tiene una longitud impar. Si es así, añádelo a la suma. Finalmente imprima el valor de la suma al final.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find the sum of all odd length // palindromic numbers within the given range #include <bits/stdc++.h> using namespace std; // Function that returns true if // the given number is a palindrome bool isPalindrome(int num) { int reverse_num = 0, remainder, temp; /* Here we are generating a new number (reverse_num) * by reversing the digits of original input number */ temp = num; while (temp != 0) { remainder = temp % 10; reverse_num = reverse_num * 10 + remainder; temp /= 10; } /* If the original input number (num) is equal to * to its reverse (reverse_num) then its palindrome * else it is not. */ if (reverse_num == num) { return true; } return false; } // Function that returns true if the // given number is of odd length bool isOddLength(int num) { int count = 0; while (num > 0) { num /= 10; count++; } if (count % 2 != 0) { return true; } return false; } // Function to return the sum of all odd length // palindromic numbers within the given range long sumOfAllPalindrome(int L, int R) { long sum = 0; if (L <= R) for (int i = L; i <= R; i++) { // if number is palindrome and of odd length if (isPalindrome(i) && isOddLength(i)) { sum += i; } } return sum; } // Driver code int main() { int L = 110, R = 1130; cout << " " << sumOfAllPalindrome(L, R) << endl; } // This code is contributed by shivanisinghs2110.
C
// C program to find the sum of all odd length // palindromic numbers within the given range #include <stdbool.h> #include <stdio.h> // Function that returns true if // the given number is a palindrome bool isPalindrome(int num) { int reverse_num = 0, remainder, temp; /* Here we are generating a new number (reverse_num) * by reversing the digits of original input number */ temp = num; while (temp != 0) { remainder = temp % 10; reverse_num = reverse_num * 10 + remainder; temp /= 10; } /* If the original input number (num) is equal to * to its reverse (reverse_num) then its palindrome * else it is not. */ if (reverse_num == num) { return true; } return false; } // Function that returns true if the // given number is of odd length bool isOddLength(int num) { int count = 0; while (num > 0) { num /= 10; count++; } if (count % 2 != 0) { return true; } return false; } // Function to return the sum of all odd length // palindromic numbers within the given range long sumOfAllPalindrome(int L, int R) { long sum = 0; if (L <= R) for (int i = L; i <= R; i++) { // if number is palindrome and of odd length if (isPalindrome(i) && isOddLength(i)) { sum += i; } } return sum; } // Driver code int main() { int L = 110, R = 1130; printf("%ld", sumOfAllPalindrome(L, R)); } //this code is contributed by shivanisinghss2110
Java
// Java program to find the sum of all odd length // palindromic numbers within the given range class GFG { // Function that returns true if // the given number is a palindrome static boolean isPalindrome(int num) { int reverse_num = 0, remainder, temp; /* Here we are generating a new number (reverse_num) * by reversing the digits of original input number */ temp = num; while (temp != 0) { remainder = temp % 10; reverse_num = reverse_num * 10 + remainder; temp /= 10; } /* If the original input number (num) is equal to * to its reverse (reverse_num) then its palindrome * else it is not. */ if (reverse_num == num) { return true; } return false; } // Function that returns true if the // given number is of odd length static boolean isOddLength(int num) { int count = 0; while (num > 0) { num /= 10; count++; } if (count % 2 != 0) { return true; } return false; } // Function to return the sum of all odd length // palindromic numbers within the given range static long sumOfAllPalindrome(int L, int R) { long sum = 0; if (L <= R) for (int i = L; i <= R; i++) { // if number is palindrome and of odd length if (isPalindrome(i) && isOddLength(i)) { sum += i; } } return sum; } // Driver code public static void main(String[] args) { int L = 110, R = 1130; System.out.println(sumOfAllPalindrome(L, R)); } }
Python3
# Python 3 program to find the sum of # all odd length palindromic numbers # within the given range # Function that returns true if # the given number is a palindrome def isPalindrome(num): reverse_num = 0 # Here we are generating a new number # (reverse_num) by reversing the digits # of original input number temp = num while (temp != 0): remainder = temp % 10 reverse_num = reverse_num * 10 + remainder temp = int(temp/10) # If the original input number (num) is # equal to its reverse (reverse_num) then # its palindrome else it is not. if (reverse_num == num): return True return False # Function that returns true if the given # number is of odd length def isOddLength(num): count = 0 while (num > 0): num = int (num / 10) count += 1 if (count % 2 != 0): return True return False # Function to return the sum of all odd length # palindromic numbers within the given range def sumOfAllPalindrome(L, R): sum = 0 if (L <= R): for i in range(L, R + 1, 1): # if number is palindrome and of # odd length if (isPalindrome(i) and isOddLength(i)): sum += i return sum # Driver code if __name__ == '__main__': L = 110 R = 1130 print(sumOfAllPalindrome(L, R)) # This code is contributed by # Shashank_Sharma
C#
// C# program to find the sum of all odd length // palindromic numbers within the given range using System; public class GFG { // Function that returns true if // the given number is a palindrome static bool isPalindrome(int num) { int reverse_num = 0, remainder, temp; /* Here we are generating a new number (reverse_num) * by reversing the digits of original input number */ temp = num; while (temp != 0) { remainder = temp % 10; reverse_num = reverse_num * 10 + remainder; temp /= 10; } /* If the original input number (num) is equal to * to its reverse (reverse_num) then its palindrome * else it is not. */ if (reverse_num == num) { return true; } return false; } // Function that returns true if the // given number is of odd length static bool isOddLength(int num) { int count = 0; while (num > 0) { num /= 10; count++; } if (count % 2 != 0) { return true; } return false; } // Function to return the sum of all odd length // palindromic numbers within the given range static long sumOfAllPalindrome(int L, int R) { long sum = 0; if (L <= R) for (int i = L; i <= R; i++) { // if number is palindrome and of odd length if (isPalindrome(i) && isOddLength(i)) { sum += i; } } return sum; } // Driver code public static void Main(String[] args) { int L = 110, R = 1130; Console.WriteLine(sumOfAllPalindrome(L, R)); } }
PHP
<?php // PHP program to find the sum of x // all odd length palindromic numbers // within the given range // Function that returns true if // the given number is a palindrome function isPalindrome($num) { $reverse_num = 0; $remainder; $temp; // Here we are generating a new number // (reverse_num) by reversing the // digits of original input number $temp = $num; while ($temp != 0) { $remainder = $temp % 10; $reverse_num = $reverse_num * 10 + $remainder; $temp = (int)($temp / 10); } // If the original input number (num) is // equal to its reverse (reverse_num) // then its palindrome else it is not. if ($reverse_num == $num) { return true; } return false; } // Function that returns true if the // given number is of odd length function isOddLength($num) { $count = 0; while ($num > 0) { $num = (int)($num / 10); $count++; } if ($count % 2 != 0) { return true; } return false; } // Function to return the sum of // all odd length palindromic numbers // within the given range function sumOfAllPalindrome($L, $R) { $sum = 0; if ($L <= $R) for ($i = $L; $i <= $R; $i++) { // if number is palindrome and // of odd length if (isPalindrome($i) && isOddLength($i)) { $sum += $i; } } return $sum; } // Driver code $L = 110; $R = 1130; echo sumOfAllPalindrome($L, $R); // This code is contributed by mits ?>
Javascript
<script> // Javascript program to find the sum of all odd length // palindromic numbers within the given range // Function that returns true if // the given number is a palindrome function isPalindrome(num) { let reverse_num = 0, remainder, temp; /* Here we are generating a new number (reverse_num) * by reversing the digits of original input number */ temp = num; while (temp != 0) { remainder = temp % 10; reverse_num = reverse_num * 10 + remainder; temp = Math.floor(temp/10); } /* If the original input number (num) is equal to * to its reverse (reverse_num) then its palindrome * else it is not. */ if (reverse_num == num) { return true; } return false; } // Function that returns true if the // given number is of odd length function isOddLength(num) { let count = 0; while (num > 0) { num = Math.floor(num/10); count++; } if (count % 2 != 0) { return true; } return false; } // Function to return the sum of all odd length // palindromic numbers within the given range function sumOfAllPalindrome(L,R) { let sum = 0; if (L <= R) for (let i = L; i <= R; i++) { // if number is palindrome and of odd length if (isPalindrome(i) && isOddLength(i)) { sum += i; } } return sum; } // Driver code let L = 110, R = 1130; document.write(sumOfAllPalindrome(L, R)); // This code is contributed by rag2127 </script>
Producción:
49399
Complejidad de tiempo: O((R – L) * log 10 (R – L))
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por 29AjayKumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA