Largest int from concatenated ints: Difference between revisions

Rename Perl 6 -> Raku, alphabetize, minor clean-up
m (→‎Haskell Try all permutations method: (<$> -> fmap; needs fewer brackets))
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 301:
<pre>998764543431
6054854654</pre>
 
=={{header|C++}}==
<lang cpp>#include <iostream>
#include <sstream>
#include <algorithm>
#include <vector>
#include <string>
 
std::string findLargestConcat ( std::vector< int > & mynumbers ) {
std::vector<std::string> concatnumbers ;
std::sort ( mynumbers.begin( ) , mynumbers.end( ) ) ;
do {
std::ostringstream numberstream ;
for ( int i : mynumbers )
numberstream << i ;
concatnumbers.push_back( numberstream.str( ) ) ;
} while ( std::next_permutation( mynumbers.begin( ) ,
mynumbers.end( ) )) ;
return *( std::max_element( concatnumbers.begin( ) ,
concatnumbers.end( ) ) ) ;
}
 
int main( ) {
std::vector<int> mynumbers = { 98, 76 , 45 , 34, 9 , 4 , 3 , 1 } ;
std::vector<int> othernumbers = { 54 , 546 , 548 , 60 } ;
std::cout << "The largest concatenated int is " <<
findLargestConcat( mynumbers ) << " !\n" ;
std::cout << "And here it is " << findLargestConcat( othernumbers )
<< " !\n" ;
return 0 ;
}</lang>
 
{{out}}
<pre>The largest concatenated int is 998764543431 !
And here it is 6054854654 !</pre>
 
=={{header|C sharp|C#}}==
Line 377 ⟶ 342:
<pre>The largest possible integer from set 1 is: 998764543431
The largest possible integer from set 2 is: 6054854654</pre>
 
=={{header|C++}}==
<lang cpp>#include <iostream>
#include <sstream>
#include <algorithm>
#include <vector>
#include <string>
 
std::string findLargestConcat ( std::vector< int > & mynumbers ) {
std::vector<std::string> concatnumbers ;
std::sort ( mynumbers.begin( ) , mynumbers.end( ) ) ;
do {
std::ostringstream numberstream ;
for ( int i : mynumbers )
numberstream << i ;
concatnumbers.push_back( numberstream.str( ) ) ;
} while ( std::next_permutation( mynumbers.begin( ) ,
mynumbers.end( ) )) ;
return *( std::max_element( concatnumbers.begin( ) ,
concatnumbers.end( ) ) ) ;
}
 
int main( ) {
std::vector<int> mynumbers = { 98, 76 , 45 , 34, 9 , 4 , 3 , 1 } ;
std::vector<int> othernumbers = { 54 , 546 , 548 , 60 } ;
std::cout << "The largest concatenated int is " <<
findLargestConcat( mynumbers ) << " !\n" ;
std::cout << "And here it is " << findLargestConcat( othernumbers )
<< " !\n" ;
return 0 ;
}</lang>
 
{{out}}
<pre>The largest concatenated int is 998764543431 !
And here it is 6054854654 !</pre>
 
=={{header|Ceylon}}==
Line 869:
998764543431
6054854654
</pre> =={{header|Go}}==
 
=={{header|Go}}==
<lang go>// Variation of method 3. Repeat digits to at least the size of the longest,
// then sort as strings.
Line 1,122 ⟶ 1,120:
<pre>998764543431
6054854654</pre>
 
=={{header|JavaScript}}==
 
Line 1,281 ⟶ 1,280:
<pre>998764543431
6054854654</pre>
 
 
 
=={{header|NetRexx}}==
Line 1,375 ⟶ 1,372:
[998764543431, 6054854654]
</pre>
 
=={{header|PARI/GP}}==
Sorts then joins. Most of the noise comes from converting a vector of integers into a concatenated integer: <code>eval(concat(apply(n->Str(n),v)))</code>. Note that the short form <code>eval(concat(apply(Str,v)))</code> is not valid here because <code>Str</code> is variadic.
 
<lang parigp>large(v)=eval(concat(apply(n->Str(n),vecsort(v,(x,y)->eval(Str(y,x,"-",x,y))))));
large([1, 34, 3, 98, 9, 76, 45, 4])
large([54, 546, 548, 60])</lang>
{{out}}
<pre>%1 = 998764543431
%2 = 6054854654</pre>
 
=={{header|Pascal}}==
Line 1,656 ⟶ 1,663:
6054854654
602121212122210></pre>
 
=={{header|PARI/GP}}==
Sorts then joins. Most of the noise comes from converting a vector of integers into a concatenated integer: <code>eval(concat(apply(n->Str(n),v)))</code>. Note that the short form <code>eval(concat(apply(Str,v)))</code> is not valid here because <code>Str</code> is variadic.
 
<lang parigp>large(v)=eval(concat(apply(n->Str(n),vecsort(v,(x,y)->eval(Str(y,x,"-",x,y))))));
large([1, 34, 3, 98, 9, 76, 45, 4])
large([54, 546, 548, 60])</lang>
{{out}}
<pre>%1 = 998764543431
%2 = 6054854654</pre>
 
=={{header|Perl}}==
Line 1,674 ⟶ 1,671:
print maxnum(1, 34, 3, 98, 9, 76, 45, 4), "\n";
print maxnum(54, 546, 548, 60), "\n";</lang>
{{out}}
<pre>998764543431
6054854654</pre>
 
=={{header|Perl 6}}==
<lang perl6>sub maxnum(*@x) {
[~] @x.sort: -> $a, $b { $b ~ $a leg $a ~ $b }
}
 
say maxnum <1 34 3 98 9 76 45 4>;
say maxnum <54 546 548 60>;</lang>
{{out}}
<pre>998764543431
Line 1,963 ⟶ 1,949:
;; -> '(998764543431 6054854654)
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
<lang perl6>sub maxnum(*@x) {
[~] @x.sort: -> $a, $b { $b ~ $a leg $a ~ $b }
}
 
say maxnum <1 34 3 98 9 76 45 4>;
say maxnum <54 546 548 60>;</lang>
{{out}}
<pre>998764543431
6054854654</pre>
 
=={{header|REXX}}==
10,327

edits