Given a number, the task is to check if it is tidy or not. A tidy number is a number whose digits are in non-decreasing order.
Examples :
Input : 1234
Output : YesInput : 1243
Output : No
Explanation: Digits "4" and "3" violate the property.
Try It Yourself
Asked in Freshokartz
Algorithm:
- 1- One by one find all the digits.
- 2- Compare every digit with its next digit.
- 3- If any is in decreasing order then return false.
- 4- Otherwise return true.
Implementation :
// C++ program to check if a number is Tidy
// or not.
#include<iostream>
using namespace std;
// Returns true if num is Tidy
bool isTidy(int num)
{
// To store previous digit (Assigning
// initial value which is more than any
// digit)
int prev = 10;
// Traverse all digits from right to
// left and check if any digit is
// smaller than previous.
while (num)
{
int rem = num % 10;
num /= 10;
if (rem > prev)
return false;
prev = rem;
}
return true;
}
// Driver code
int main()
{
int num = 1556;
isTidy(num) ? cout << "Yes"
: cout << "No";
return 0;
}
// Java program to check if a number
// is Tidy or not.
class Test
{
// Returns true if num is Tidy
static boolean isTidy(int num)
{
// To store previous digit
// (Assigning initial value
// which is more than any
// digit)
int prev = 10;
// Traverse all digits from right to
// left and check if any digit is
// smaller than previous.
while (num!=0)
{
int rem = num % 10;
num /= 10;
if (rem > prev)
return false;
prev = rem;
}
return true;
}
// Driver method
public static void main(String[] args)
{
int num = 1556;
System.out.println(isTidy(num) ? "Yes" : "No");
}
}
# Python program to check if a number
# is Tidy or not.
# Returns true if num is Tidy
def isTidy(num):
# To store previous digit (Assigning
# initial value which is more than any
# digit)
prev = 10
# Traverse all digits from right to
# left and check if any digit is
# smaller than previous.
while (num):
rem = num % 10
num /= 10
if rem > prev:
return False
prev = rem
return True
# Driver code
num = 1556
if isTidy(num):
print("Yes")
else:
print("No")
# This code is contributed by Sharad_Bhardwaj.
// C# program to check if a
// number is Tidy or not.
using System;
class GFG
{
// Returns true if num is Tidy
static bool isTidy(int num)
{
// To store previous digit
// (Assigning initial value
// which is more than any
// digit)
int prev = 10;
// Traverse all digits from
// right to left and check
// if any digit is smaller
// than previous.
while (num != 0)
{
int rem = num % 10;
num /= 10;
if (rem > prev)
return false;
prev = rem;
}
return true;
}
// Driver Code
public static void Main ()
{
int num = 1556;
Console.WriteLine(isTidy(num) ?
"Yes" :
"No");
}
}
// This code is contributed by m_kit
<?php
// PHP program to check if a
// number is Tidy or not.
// Returns true if num is Tidy
function isTidy($num)
{
// To store previous digit
// (Assigning initial value
// which is more than any
// digit)
$prev = 10;
// Traverse all digits from
// right to left and check
// if any digit is smaller
// than previous.
while ($num)
{
$rem = $num % 10;
$num = (int)$num / 10;
if ($rem > $prev)
return false;
$prev = $rem;
}
return true;
}
// Driver code
$num = 1556;
if(isTidy($num) == true)
echo "Yes";
else
echo "No";
// This code is contributed by aj_36
?>
<script>
// JavaScript program for the above approach
// Returns true if num is Tidy
function isTidy(num)
{
// To store previous digit
// (Assigning initial value
// which is more than any
// digit)
let prev = 10;
// Traverse all digits from right to
// left and check if any digit is
// smaller than previous.
while (num!=0)
{
let rem = num % 10;
num /= 10;
if (rem > prev)
return false;
prev = rem;
}
return true;
}
// Driver Code
let num = 1556;
document.write(isTidy(num) ? "Yes" : "No");
// This code is contributed by susmitakundugoaldanga.
</script>
Output
Yes
Time Complexity: O(d) where d is the number of digits in the given number.
Auxiliary Space: O(1) since using constant extra space.
Reference :
https://www.gayle.com/consulting