Open In App

Tidy Number (Digits in non-decreasing Order)

Last Updated : 13 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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 : Yes

Input : 1243
Output : No
Explanation: Digits “4” and “3” violate the property.

Asked in Freshokartz
 

Recommended Practice

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




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




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


Python3




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




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


Javascript




<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.careercup.com/question?id=5136136486780928

 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads