Given two integers
Examples:
Input: L = 10, R = 130
Output: 333
101 + 111 + 121 = 333
Input: L = 110, R = 1130
Output: 49399
Approach: Iterate from
Below is the implementation of the above approach:
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> |
Output:
49399
Time Complexity: O((R – L) * log10(R – L))
Auxiliary Space: O(1)