3 deleted 97 characters in body
source | link

J, 4440 bytes

((]*[{~i.@#@[-.i]*<^:3@i.{[)>./)&.(10&#.inv)^:(9&<)^:_

Try it online!

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
 (     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
 (               )>./)                              NB. stuff is a hook, with max digit >./  on the right
 (]*[{~i.@#@[-.i]*<^:3@i.{[)                                  NB. so that in this phrase, ] means "max" and [ means "all digits"
  ]                                             NB. the max digit...
   *                                            NB. times...        
    [    <^:3@                                       NB. all thetriple digitsbox...
     {~    i.                                     NB. from those digits, pick the following indexes only...
       i.@#@[   first index of the max in the list of all digits
           {           NB. all the possible indexes (0 through the length of all digits, [)
             -NB.                        "from" -- which because of the triple box means NB."take removeall fromindexes themexcept..."
            [   i.                                NB. the first index of the maxfrom inall the listdigits of allthe digitsnumber

Try it online!

J, 44 bytes

((]*[{~i.@#@[-.i.)>./)&.(10&#.inv)^:(9&<)^:_
(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
 (     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
 (               )>./)                          NB. stuff is a hook, with max digit >./  on the right
 (]*[{~i.@#@[-.i.)                              NB. so that in this phrase, ] means "max" and [ means "all digits"
  ]                                             NB. the max digit...
   *                                            NB. times...        
    [                                           NB. all the digits...
     {~                                         NB. from those digits, pick the following indexes only...
       i.@#@[                                   NB. all the possible indexes (0 through the length of all digits, [)
             -.                                 NB. remove from them...
               i.                               NB. the first index of the max in the list of all digits

Try it online!

J, 40 bytes

((]*<^:3@i.{[)>./)&.(10&#.inv)^:(9&<)^:_

Try it online!

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
 (     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
 (           )>./)                              NB. stuff is a hook, with max digit >./  on the right
 (]*<^:3@i.{[)                                  NB. so that in this phrase, ] means "max" and [ means "all digits"
  ]                                             NB. the max digit...
   *                                            NB. times...        
    <^:3@                                       NB. triple box...
         i.                                     NB. the first index of the max in the list of all digits
           {                                    NB. "from" -- which because of the triple box means "take all indexes except..."
            [                                   NB. from all the digits of the number
2 added 1071 characters in body
source | link

explanation coming...

explanation

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
 (     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
 (               )>./)                          NB. stuff is a hook, with max digit >./  on the right
 (]*[{~i.@#@[-.i.)                              NB. so that in this phrase, ] means "max" and [ means "all digits"
  ]                                             NB. the max digit...
   *                                            NB. times...        
    [                                           NB. all the digits...
     {~                                         NB. from those digits, pick the following indexes only...
       i.@#@[                                   NB. all the possible indexes (0 through the length of all digits, [)
             -.                                 NB. remove from them...
               i.                               NB. the first index of the max in the list of all digits

explanation coming...

explanation

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
 (     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
 (               )>./)                          NB. stuff is a hook, with max digit >./  on the right
 (]*[{~i.@#@[-.i.)                              NB. so that in this phrase, ] means "max" and [ means "all digits"
  ]                                             NB. the max digit...
   *                                            NB. times...        
    [                                           NB. all the digits...
     {~                                         NB. from those digits, pick the following indexes only...
       i.@#@[                                   NB. all the possible indexes (0 through the length of all digits, [)
             -.                                 NB. remove from them...
               i.                               NB. the first index of the max in the list of all digits
1
source | link

J, 44 bytes

((]*[{~i.@#@[-.i.)>./)&.(10&#.inv)^:(9&<)^:_

explanation coming...

Try it online!