Open In App

Check if a number is jumbled or not

Improve
Improve
Like Article
Like
Save
Share
Report

Write a program to check if a given integer is jumbled or not. A number is said to be Jumbled if for every digit, its neighbours digit differs by max 1. 

Examples : 

Input : 6765
Output : True
All neighbour digits differ by atmost 1.

Input : 1223
Output : True

Input : 1235
Output : False

 

Approach:

  • Find the adjacent digits in the number while num > 0
    • if the absolute difference of the digits is greater than 1.
      • Return false
  • Return True

Below is the implementation of the above idea : 

C++




// CPP code to check if a
// number is jumbled or not
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if a
// number is jumbled or not
bool checkJumbled(int num)
{
    // Single digit number
    if (num / 10 == 0)
        return true;
 
    // Checking every digit
    // through a loop
    while (num != 0)
    {
 
        // All digits were checked
        if (num / 10 == 0)
            return true;
 
        // Digit at index i
        int digit1 = num % 10;
 
        // Digit at index i-1
        int digit2 = (num / 10) % 10;
 
        // If difference is
        // greater than 1
        if (abs(digit2 - digit1) > 1)
            return false;
 
        num = num / 10;
    }
 
    // Number checked
    return true;
}
 
// Driver code
int main()
{
 
    //-1234 to be checked
    int num = -1234;
 
    if (checkJumbled(num))
        cout << "True \n";
    else
        cout << "False \n";
 
    // 287 to be checked
    num = -1247;
 
    if (checkJumbled(num))
        cout << "True \n";
    else
        cout << "False \n";
 
    return 0;
}


Java




// Java code to check if a
// number is jumbled or not
import java.io.*;
 
class GFG
{
     
    // Function to check if a
    // number is jumbled or not
    static boolean checkJumbled(int num)
    {
        // Single digit number
        if (num / 10 == 0)
            return true;
     
        // Checking every digit
        // through a loop
        while (num != 0)
        {
     
            // All digits were checked
            if (num / 10 == 0)
                return true;
     
            // Digit at index i
            int digit1 = num % 10;
     
            // Digit at index i-1
            int digit2 = (num / 10) % 10;
     
            // If difference is
            // greater than 1
            if (Math.abs(digit2 - digit1) > 1)
                return false;
     
            num = num / 10;
        }
     
        // Number checked
        return true;
    }
     
    // Driver code
    public static void main (String[]args)
    {
        //-1234 to be checked
        int num = -1234;
     
        if (checkJumbled(num))
            System.out.println("True ");
        else
            System.out.println("False ");
     
        // 287 to be checked
        num = -1247;
     
        if (checkJumbled(num))
            System.out.println("True ");
                 
        else
            System.out.println("False ");
             
    }
}
 
// This code is contributed by vt_m.


Python3




# Python code to check if
# a number is jumbled or not
 
# Function to check if a
# number is jumbled or not
def checkJumbled(num):
 
    # Single digit number
    if (num // 10 == 0):
        return True
 
    # Checking every digit
    # through a loop
    while (num != 0):
         
        # All digits were checked
        if (num // 10 == 0):
            return True
 
        # Digit at index i
        digit1 = num % 10
 
        # Digit at index i-1
        digit2 = (num // 10) % 10
 
        # If difference is
        # greater than 1
        if (abs(digit2 - digit1) > 1):
            return False
 
        num = num // 10
         
    # Number checked
    return True
     
# Driver code
 
# -1234 to be checked
num = -1234
if (checkJumbled(abs(num))):
    print (True)
else:
    print (False)
     
# -1247 to be checked
num = -1247
if (checkJumbled(abs(num))):
    print (True)
else:
    print (False)
 
# This code is contributed
# by Sachin Bisht


C#




// C# code to check if a number
// is jumbled or not
using System;
 
class GFG
{
     
    // Function to check if a
    // number is jumbled or not
    static bool checkJumbled(int num)
    {
         
        // Single digit number
        if (num / 10 == 0)
            return true;
     
        // Checking every digit
        // through a loop
        while (num != 0)
        {
     
            // All digits were checked
            if (num / 10 == 0)
                return true;
     
            // Digit at index i
            int digit1 = num % 10;
     
            // Digit at index i-1
            int digit2 = (num / 10) % 10;
     
            // If difference is
            // greater than 1
            if (Math.Abs(digit2 - digit1) > 1)
                return false;
     
            num = num / 10;
        }
     
        // Number checked
        return true;
    }
     
    // Driver code
    public static void Main ()
    {
        //-1234 to be checked
        int num = -1234;
     
        if (checkJumbled(num))
            Console.WriteLine("True ");
        else
            Console.WriteLine("False ");
     
        // 287 to be checked
        num = -1247;
     
        if (checkJumbled(num))
            Console.WriteLine("True");
                 
        else
            Console.WriteLine("False");
             
    }
}
 
// This code is contributed by Nitin Mittal.


PHP




<?php
// PHP code to check if a
// number is jumbled or not
 
// Function to check if a
// number is jumbled or not
function checkJumbled($num)
{
    // Single digit number
    if ($num / 10 == 0)
        return true;
 
    // Checking every digit
    // through a loop
    while ($num != 0)
    {
 
        // All digits were checked
        if ($num / 10 == 0)
            return true;
 
        // Digit at index i
        $digit1 = $num % 10;
 
        // Digit at index i-1
        $digit2 = ($num / 10) % 10;
 
        // If difference is
        // greater than 1
        if (abs($digit2 - $digit1) > 1)
            return false;
 
        $num = $num / 10;
    }
 
    // Number checked
    return true;
}
 
// Driver code
 
//-1234 to be checked
$num = -1234;
 
if (checkJumbled($num))
    echo "True \n";
else
    echo "False \n";
 
// 287 to be checked
$num = -1247;
 
if (checkJumbled($num))
    echo "True \n";
else
    echo "False \n";
 
// This code is contributed by ajit
?>


Javascript




<script>
    // Javascript code to check if a number is jumbled or not
     
    // Function to check if a
    // number is jumbled or not
    function checkJumbled(num)
    {
           
        // Single digit number
        if (parseInt(num / 10, 10) == 0)
            return true;
       
        // Checking every digit
        // through a loop
        while (num != 0)
        {
       
            // All digits were checked
            if (parseInt(num / 10, 10) == 0)
                return true;
       
            // Digit at index i
            let digit1 = num % 10;
       
            // Digit at index i-1
            let digit2 = parseInt(num / 10, 10) % 10;
       
            // If difference is
            // greater than 1
            if (Math.abs(digit2 - digit1) > 1)
                return false;
       
            num = parseInt(num / 10, 10);
        }
       
        // Number checked
        return true;
    }
     
    //-1234 to be checked
    let num = -1234;
 
    if (checkJumbled(num))
      document.write("True " + "</br>");
    else
      document.write("False " + "</br>");
 
    // 287 to be checked
    num = -1247;
 
    if (checkJumbled(num))
      document.write("True " + "</br>");
 
    else
      document.write("False " + "</br>");
     
    // This code is contributed by rameshtravel07.
</script>


Output

True 
False 

Time complexity: O(log10N), where N is the given number.
Auxiliary space: O(1), as constant space is being used.

Related Article : 
Stepping Numbers

 



Last Updated : 22 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads