Largest int from concatenated ints: Difference between revisions
Content added Content deleted
(→Vim Script: Add implementation) |
(→{{header|REXX}}: added the REXX language. -- ~~~~) |
||
Line 221: | Line 221: | ||
Numbers: (54, 546, 548, 60) |
Numbers: (54, 546, 548, 60) |
||
Largest integer: 6054854654</pre> |
Largest integer: 6054854654</pre> |
||
=={{header|REXX}}== |
|||
<lang rexx>/*REXX pgm constructs largest integer from a list using concatenation.*/ |
|||
@. = |
|||
@.1 = '{1, 34, 3, 98, 9, 76, 45, 4}' |
|||
@.2 = '{54, 546, 548, 60}' |
|||
/* [↓] process all the lists. */ |
|||
do j=1 while @.j\==''; $= /*keep truckin' until exausted. */ |
|||
z=space(translate(@.j,,'{,}')) /*perform some scrubbing on list.*/ |
|||
do while z\=='' /*examine each*/ |
|||
$=$ || mx() /*get "max" #.*/ |
|||
end /*while*/ |
|||
say right($,30) ' max for: ' @.j |
|||
end /*j*/ |
|||
exit /*stick a fork in it, we're done.*/ |
|||
/*──────────────────────────────────MX subroutine───────────────────────*/ |
|||
mx: procedure expose z; big=word(z,1); index=1 |
|||
do k=2 to words(z); x=word(z,k) /*get a num. */ |
|||
L=max(length(big),length(x)) /*get max len*/ |
|||
if left(x,L,left(x,1))>>left(big,L,left(big,1)) then do |
|||
big=x |
|||
index=k |
|||
end |
|||
end /*k*/ |
|||
z=strip(delword(z,index,1)) |
|||
return big</lang> |
|||
'''output''' when using the input of: <tt> xxx </tt> |
|||
<pre style="overflow:scroll"> |
|||
998764543431 max for: {1, 34, 3, 98, 9, 76, 45, 4} |
|||
6054854654 max for: {54, 546, 548, 60} |
|||
</pre> |
|||
===Python: Compare repeated string method=== |
===Python: Compare repeated string method=== |