Suma de todos los números palindrómicos de longitud impar dentro del rango [L, R]

Dados dos enteros  L     R     , 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  L     R     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

Deja una respuesta

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