# Sum of all N digit palindromic numbers divisible by 9 formed using digits 1 to 9

Given a number N, the task is to find the sum of all N digits palindromic numbers (formed by digits from 1 to 9) that are divisible by 9.

Examples:

Input: N = 1
Output: 9
Explanation:
Only 9 is a palindromic number of 1 digit divisible by 9

Input: N = 3
Output: 4995
Explanation:
Three-digit Palindromic Numbers divisible by 9 are –
171, 252, 333, 414, 585, 666, 747, 828, 999

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: The key observation in the problem is that if a number is divisible by 9, then the sum of digits of that number is also divisible by 9. Another observation is if we count the number of N-digit palindromic numbers using the digits from 1 to 9, then it can be observed that

Occurrence of each digit = (count of N-digit numbers / 9)

Therefore,

1. First find the count of N-digit Palindromic numbers divisible by 9, as: 2. Then if N is 1 or 2, the sum will be simply 9 and 99 respectively, as they are the only palindromic numbers of 1 and 2 digits.
3. If N > 2, then the sum for Nth digit palindromic numbers divisible by 9 is 4. Below is the implementation of the above approach:

## C++

 // C++ implementation to find the sum  // of all the N digit palindromic  // numbers divisible by 9     #include     using namespace std;     // Function for finding count of  // N digits palindrome which  // are divisible by 9  int countPalindrome(int n)  {      int count;         // if N is odd      if (n % 2 == 1) {          count = pow(9, (n - 1) / 2);      }      // if N is even      else {          count = pow(9, (n - 2) / 2);      }      return count;  }     // Function for finding sum of N  // digits palindrome which are  // divisible by 9  int sumPalindrome(int n)  {      // count the possible      // number of palindrome      int count = countPalindrome(n);         int res = 0;         if (n == 1)          return 9;      if (n == 2)          return 99;         for (int i = 0; i < n; i++) {          res = res * 10 + count * 5;      }         return res;  }     // Driver Code  int main()  {      int n = 3;      cout << sumPalindrome(n);      return 0;  }

## Java

 // Java implementation to find the sum  // of all the N digit palindromic  // numbers divisible by 9  import java.util.*;     class GFG{         // Function for finding count of  // N digits palindrome which  // are divisible by 9  static int countPalindrome(int n)  {      int count;         // If N is odd      if (n % 2 == 1)      {          count = (int)Math.pow(9, (n - 1) / 2);      }             // If N is even      else     {          count = (int)Math.pow(9, (n - 2) / 2);      }      return count;  }     // Function for finding sum of N  // digits palindrome which are  // divisible by 9  static int sumPalindrome(int n)  {             // Count the possible      // number of palindrome      int count = countPalindrome(n);         int res = 0;         if (n == 1)          return 9;      if (n == 2)          return 99;         for(int i = 0; i < n; i++)      {         res = res * 10 + count * 5;      }         return res;  }     // Driver Code  public static void main(String[] args)  {      int n = 3;             System.out.println(sumPalindrome(n));  }  }     // This code is contributed by ANKITKUMAR34

## Python3

 # Python3 implementation to find the   # sum of all the N digit palindromic  # numbers divisible by 9     # Function for finding count of  # N digits palindrome which  # are divisible by 9  def countPalindrome(n):         count = 0            # If N is odd      if (n % 2 == 1):          count = pow(9, (n - 1) // 2)                 # If N is even      else:          count = pow(9, (n - 2) // 2)                 return count     # Function for finding sum of N  # digits palindrome which are  # divisible by 9  def sumPalindrome(n):         # Count the possible      # number of palindrome      count = countPalindrome(n)         res = 0        if (n == 1):          return 9     if (n == 2):          return 99        for i in range(n):          res = res * 10 + count * 5        return res     # Driver Code  n = 3    print(sumPalindrome(n))     # This code is contributed by ANKITKUMAR34

## C#

 // C# implementation to find the sum  // of all the N digit palindromic  // numbers divisible by 9  using System;     class GFG{          // Function for finding count of  // N digits palindrome which  // are divisible by 9  static int countPalindrome(int n)  {      int count;          // If N is odd      if (n % 2 == 1)      {          count = (int)Math.Pow(9, (n - 1) / 2);      }              // If N is even      else     {          count = (int)Math.Pow(9, (n - 2) / 2);      }      return count;  }      // Function for finding sum of N  // digits palindrome which are  // divisible by 9  static int sumPalindrome(int n)  {              // Count the possible      // number of palindrome      int count = countPalindrome(n);          int res = 0;          if (n == 1)          return 9;      if (n == 2)          return 99;          for(int i = 0; i < n; i++)      {         res = res * 10 + count * 5;      }          return res;  }      // Driver Code  public static void Main(String[] args)  {      int n = 3;              Console.WriteLine(sumPalindrome(n));  }  }     // This code is contributed by Amit Katiyar

Output:

4995 My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Practice Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.