How to sort Integer digits in ascending order without Strings or Arrays?

前端 未结 8 717
傲寒
傲寒 2020-12-06 06:32

I\'m trying to sort the digits of an integer of any length in ascending order without using Strings, arrays or recursion.

Example:

Input: 451467
Outp         


        
8条回答
  •  情歌与酒
    2020-12-06 07:17

    Since the possible elements (i. e. digits) in a number are known (0 to 9) and few (10 in total), you can do this:

    1. Print a 0 for every 0 in the number.
    2. Print a 1 for every 1 in the number.
        int number = 451467;
    
        // the possible elements are known, 0 to 9
        for (int i = 0; i <= 9; i++) {
            int tempNumber = number;
    
            while (tempNumber > 0) {
                int digit = tempNumber % 10;
                if (digit == i) {
                    IO.print(digit);
                }
                tempNumber = tempNumber / 10;
            }
        }
    

提交回复
热议问题