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 : TrueInput : 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
- if the absolute difference of the digits is greater than 1.
- Return True
Below is the implementation of the above idea :
// 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 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.
# 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# 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 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
?>
<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