Open In App

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

Last Updated : 22 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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++




// 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;
}


Java




// 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


Python3




# 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


C#




// 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


PHP




<?php
// PHP implementation of the above approach
 
// Function to find the number of
// digits in the integer
function digitsCount($n)
{
    $len = 0;
    while ($n > 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
?>


Javascript




<script>
 
// Javascript implementation of the above approach
 
// Function to find the
// number of digits in the integer
function digitsCount(n)
{
    let len = 0;
    while (n > 0)
    {
        len++;
        n = Math.floor(n / 10);
    }
    return len;
}
 
// Function to find the absolute difference
function absoluteFirstLast(n, x)
{
    // Store the last x digits in last
    let i = 0, mod = 1;
    while (i < x)
    {
        mod *= 10;
        i++;
    }
    let last = n % mod;
 
    // Count the no. of digits in N
    let len = digitsCount(n);
 
    // Remove the digits except the first x
    while (len != x)
    {
        n = Math.floor(n / 10);
        len--;
    }
 
    // Store the first x digits in first
    let first = n;
 
    // Return the absolute difference between
    // the first and last
    return Math.abs(first - last);
}
 
// driver program
     
    let n = 21546, x = 2;
    document.write(absoluteFirstLast(n, x));
   
</script>


Output: 

25

 

Time Complexity: O(X+k) where X is the given integer and k is the number of digits in n.
Auxiliary Space: O(1), since no extra space has been taken.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads