codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
/// Find pythagorus triplet in an array #include <iostream> #include <algorithm> #include <cstdlib> #include <cmath> using namespace std; static int sq_(int n) { return n*n; } static int rt(int n) { return static_cast<int>( sqrt(n) ); } void print_triplet(int asq, int bsq, int csq) { cout << '(' << rt(asq) << ',' << rt(bsq) << ',' << rt(csq) << ')' << endl; } void findPythagorean(int *arr, int sz) { sort(arr, arr + sz); transform(arr, arr+sz, arr, sq_); const int &k = sz; while(--sz >= 2) { int i = 0, j = sz - 1; const int &kval = arr[k]; while(i < j) { const int sum = arr[i] + arr[j]; if(sum == kval) print_triplet(arr[i], arr[j], arr[k]); if(sum >= kval) --j; else ++i; } } } int main() { srand(0); const int arrsize = 500; int arr[arrsize] = {0}; for(int i = 0; i < 500; ++i) arr[i] = rand() % 2000; findPythagorean(arr, arrsize); return 0; }
Private
[
?
]
Run code
Submit