Absolute difference between the first X and last X Digits of N

Given two integers N and X. The task is to print the absolute difference between the first X and last X digits in N. Considering the number of digits is atleast 2*x.

Examples:

Input: N = 21546, X = 2
Output: 25
The first two digit in 21546 is 21.
The last two digit in 21546 is 46.
The absolute difference of 21 and 46 is 25.

Input: N = 351684617, X = 3
Output: 266

Simple Approach:

  • Store the last x digits of the number in last.
  • Find the number of digits in the number.
  • Remove all the digits except the first x.
  • Store the first x integers of the number in first.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the
// number of digits in the integer
long long digitsCount(long long n)
{
    int len = 0;
    while (n > 0) {
        len++;
        n /= 10;
    }
    return len;
}
  
// Function to find the absolute difference
long long absoluteFirstLast(long long n, int x)
{
    // Store the last x digits in last
    int i = 0, mod = 1;
    while (i < x) {
        mod *= 10;
        i++;
    }
    int last = n % mod;
  
    // Count the no. of digits in N
    long long len = digitsCount(n);
  
    // Remove the digits except the first x
    while (len != x) {
        n /= 10;
        len--;
    }
  
    // Store the first x digits in first
    int first = n;
  
    // Return the absolute difference between
    // the first and last
    return abs(first - last);
}
  
// Driver code
int main()
{
    long long n = 21546, x = 2;
    cout << absoluteFirstLast(n, x);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the above approach
import java.util.*;
  
class GFG
{
  
// Function to find the
// number of digits in the integer
static int digitsCount(int n)
{
    int len = 0;
    while (n > 0
    {
        len++;
        n /= 10;
    }
    return len;
}
  
// Function to find the absolute difference
static int absoluteFirstLast(int n, int x)
{
    // Store the last x digits in last
    int i = 0, mod = 1;
    while (i < x) 
    {
        mod *= 10;
        i++;
    }
    int last = n % mod;
  
    // Count the no. of digits in N
    int len = digitsCount(n);
  
    // Remove the digits except the first x
    while (len != x)
    {
        n /= 10;
        len--;
    }
  
    // Store the first x digits in first
    int first = n;
  
    // Return the absolute difference between
    // the first and last
    return Math.abs(first - last);
}
  
// Driver code
public static void main(String args[])
{
    int n = 21546, x = 2;
    System.out.println(absoluteFirstLast(n, x));
}
}
  
// This code is contributed by
// Surendra_Gangwar

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of the above approach 
  
# Function to find the 
# number of digits in the integer 
def digitsCount(n) :
    length = 0
    while (n > 0) : 
        length += 1
        n //= 10
          
    return length; 
  
  
# Function to find the absolute difference 
def absoluteFirstLast(n, x) :
      
    # Store the last x digits in last 
    i = 0 ;
    mod = 1;
    while (i < x) :
        mod *= 10;
        i += 1
      
    last = n % mod;
      
    # Count the no. of digits in N
    length = digitsCount(n); 
      
    # Remove the digits except the first x
    while (length != x) :
        n //= 10;
        length -= 1
      
    # Store the first x digits in first 
    first = n; 
      
    # Return the absolute difference between
    # the first and last 
    return abs(first - last); 
  
# Driver code 
if __name__ == "__main__"
      
    n = 21546 ;
    x = 2
    print(absoluteFirstLast(n, x)); 
      
# This code is contributed by Ryuga

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of the approach 
using System;
  
class GFG 
  
// Function to find the 
// number of digits in the integer 
static int digitsCount(int n) 
    int len = 0; 
    while (n > 0) 
    
        len++; 
        n /= 10; 
    
    return len; 
  
// Function to find the absolute difference 
static int absoluteFirstLast(int n, int x) 
    // Store the last x digits in last 
    int i = 0, mod = 1; 
    while (i < x) 
    
        mod *= 10; 
        i++; 
    
    int last = n % mod; 
  
    // Count the no. of digits in N 
    int len = digitsCount(n); 
  
    // Remove the digits except the first x 
    while (len != x) 
    
        n /= 10; 
        len--; 
    
  
    // Store the first x digits in first 
    int first = n; 
  
    // Return the absolute difference between 
    // the first and last 
    return Math.Abs(first - last); 
  
// Driver code 
public static void Main(String []args) 
    int n = 21546, x = 2; 
    Console.Write(absoluteFirstLast(n, x)); 
  
// This code has been contributed by 29AjayKumar

chevron_right


PHP

0)
{
$len++;
$n = (int)($n / 10);
}
return $len;
}

// Function to find the absolute difference
function absoluteFirstLast($n, $x)
{
// Store the last x digits in last
$i = 0;
$mod = 1;
while ($i < $x) { $mod *= 10; $i++; } $last = $n % $mod; // Count the no. of digits in N $len = digitsCount($n); // Remove the digits except the first x while ($len != $x) { $n = (int)($n / 10); $len--; } // Store the first x digits in first $first = $n; // Return the absolute difference // between the first and last return abs($first - $last); } // Driver code $n = 21546; $x = 2; echo absoluteFirstLast($n, $x); // This code is contributed by mits ?>

Output:

25


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.