Open In App

Check if a number is jumbled or not

Last Updated : 22 Sep, 2022
Comments
Improve
Suggest changes
Like Article
Like
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
 


Next Article
Article Tags :
Practice Tags :

Similar Reads