Collect and sort square numbers in ascending order from three lists: Difference between revisions
Content added Content deleted
(add RPL) |
No edit summary |
||
Line 634: | Line 634: | ||
{{out}} |
{{out}} |
||
<pre>[4, 9, 16, 25, 36, 36, 49, 81, 121, 144, 169] |
<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> |
</pre> |
||