List comprehensions: Difference between revisions
Content added Content deleted
m (→{{header|JavaScript}}: consistent indentation) |
No edit summary |
||
Line 41: | Line 41: | ||
+3 +4 +5 +5 +12 +13 +6 +8 +10 +8 +15 +17 +9 +12 +15 +12 +16 +20 |
+3 +4 +5 +5 +12 +13 +6 +8 +10 +8 +15 +17 +9 +12 +15 +12 +16 +20 |
||
</pre></div> |
</pre></div> |
||
=={{header|C++}}== |
|||
<lang C++> |
|||
#include <vector> |
|||
#include <cmath> |
|||
#include <iostream> |
|||
#include <algorithm> |
|||
#include <iterator> |
|||
void list_comprehension( std::vector<int> & , int ) ; |
|||
int main( ) { |
|||
std::vector<int> triangles ; |
|||
list_comprehension( triangles , 20 ) ; |
|||
std::copy( triangles.begin( ) , triangles.end( ) , |
|||
std::ostream_iterator<int>( std::cout , " " ) ) ; |
|||
std::cout << std::endl ; |
|||
return 0 ; |
|||
} |
|||
void list_comprehension( std::vector<int> & numbers , int upper_border ) { |
|||
for ( int a = 1 ; a < upper_border ; a++ ) { |
|||
for ( int b = a + 1 ; b < upper_border ; b++ ) { |
|||
double c = pow( a * a + b * b , 0.5 ) ; //remembering Mr. Pythagoras |
|||
if ( ( c * c ) < pow( upper_border , 2 ) + 1 ) { |
|||
if ( c == floor( c ) ) { |
|||
numbers.push_back( a ) ; |
|||
numbers.push_back( b ) ; |
|||
numbers.push_back( static_cast<int>( c ) ) ; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
This produces the following output: |
|||
3 4 5 5 12 13 6 8 10 8 15 17 9 12 15 12 16 20 |
|||
</lang> |
|||
=={{header|Clojure}}== |
=={{header|Clojure}}== |