logo CodeStepByStep logo


Language/Type: C++ recursion string return
Author: Marty Stepp (on 2016/06/16)

Write a recursive function named digitsSorted that takes an integer as a parameter and returns true if the digits of the integer are sorted and false otherwise. The digits must be sorted in non-decreasing order (i.e. increasing order with duplicate digits allowed) when read from left to right. An integer that consists of a single digit is sorted by definition. The function should be also able to handle negative numbers. Negative numbers are also considered sorted if their digits are in non-decreasing order.

The following table shows several calls to your function and their expected return values:

Call Value Returned
digitsSorted(0) true
digitsSorted(2345) true
digitsSorted(-2345) true
digitsSorted(22334455) true
digitsSorted(-5) true
digitsSorted(4321) false
digitsSorted(24378) false
digitsSorted(21) false
digitsSorted(-33331) false

Constraints: Do not declare any global variables. Do not use any loops; you must use recursion. Do not use any auxiliary data structures like Vector, Map, Set, array, etc. Also do not solve this problem using a string. You can declare as many primitive variables like ints as you like. You are allowed to define other "helper" functions if you like; they are subject to these same constraints.

Type your solution here:

This is a function problem. Write a C++ function as described. Do not write a complete program; just the function(s) above.

You must log in before you can solve this problem.

Log In

If you do not understand how to solve a problem or why your solution doesn't work, please contact your TA or instructor.
If something seems wrong with the site (errors, slow performance, incorrect problems/tests, etc.), please

Is there a problem? Contact a site administrator.

© Marty Stepp, all rights reserved.