Largest int from concatenated ints: Difference between revisions
Content added Content deleted
(Added Bracmat example) |
(First implementation using PL/I.) |
||
Line 505: | Line 505: | ||
<pre>998764543431 |
<pre>998764543431 |
||
6054854654</pre> |
6054854654</pre> |
||
=={{header|PL/I}}== |
|||
<lang> |
|||
/* Largest catenation of integers 16 October 2013 */ |
|||
/* Sort using method 2, comparing pairs of adjacent integers. */ |
|||
Largest: procedure options (main); |
|||
declare s(*) char (20) varying controlled, n fixed binary; |
|||
get (n); |
|||
allocate s(n); |
|||
get list (s); |
|||
s = trim(s); |
|||
put skip edit (s) (a, x(1)); |
|||
put skip list ('Largest integer=', Largest_integer()); |
|||
largest_integer: procedure () returns (char(100) varying); |
|||
declare sorted bit (1); |
|||
declare (true value ('1'b), false value ('0'b)) bit (1); |
|||
declare i fixed binary; |
|||
declare temp character(20) varying; |
|||
do until (sorted); |
|||
sorted = true; |
|||
do i = 1 to n-1; |
|||
if char(s(i)) || char(s(i+1)) < char(s(i+1)) || char(s(i)) then |
|||
do; |
|||
temp = s(i); s(i) = s(i+1); s(i+1) = temp; sorted = false; |
|||
end; |
|||
end; |
|||
end; |
|||
return (string(s)); |
|||
end largest_integer; |
|||
end Largest; |
|||
</lang> |
|||
<pre> |
|||
54 546 548 60 |
|||
Largest integer= 6054854654 |
|||
1 34 3 98 9 76 45 4 |
|||
Largest integer= 998764543431 |
|||
</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |