Jump to content

Collect and sort square numbers in ascending order from three lists: Difference between revisions

no edit summary
(add RPL)
No edit summary
Line 634:
{{out}}
<pre>[4, 9, 16, 25, 36, 36, 49, 81, 121, 144, 169]
</pre>
 
=={{header|Rust}}==
<syntaxhighlight lang="rust">
fn main( ) {
let list1 : Vec<i32> = vec![ 3 , 3 , 34 , 25 , 9 , 12 , 36 , 56 , 36] ;
let list2 : Vec<i32> = vec![2, 8 , 81 , 169 , 34 , 55 , 76 , 49 , 7] ;
let list3 : Vec<i32> = vec![ 75 , 121 , 75 , 144 , 35 , 16 , 46 , 35 ] ;
let mut all_numbers : Vec<f32> = Vec::new( ) ;
list1.iter( ).for_each( | n | all_numbers.push( *n as f32 ) ) ;
list2.iter( ).for_each( | n | all_numbers.push( *n as f32)) ;
list3.iter( ).for_each( | n | all_numbers.push( *n as f32) ) ;
let squares : Vec<&f32> = all_numbers.iter( ).filter( | i | {
let root = i.sqrt( ) ;
root == root.floor( )
}).collect( ) ;
let mut found : Vec<i32> = squares.iter( ).map( | n | **n as i32 ).
collect( ) ;
found.sort( ) ;
println!("{:?}" , found ) ;
}</syntaxhighlight>
 
{{out}}
<pre>
[9, 16, 25, 36, 36, 49, 81, 121, 144, 169]
</pre>
 
258

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.