From 3d087be7ef5ef61daaa0f97bb841d005f4dc3a19 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Tue, 19 Nov 2019 10:40:19 +0100 Subject: Ex 1 - 25/06/19 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scrivere un metodo che prenda in input una matrice di interi M di dimensioni n × m, uno short k ed un double x, e restituisca il valore booleano true se esiste almeno una colonna in M contenente esattamente k coppie di elementi adiacenti tali che il rapporto tra il primo elemento ed il secondo elemento di ogni coppia sia minore di x. NB: Si assuma k ≤ n − 1 e si presti attenzione alle divisioni per zero! --- I_anno/Programmazione_1/ex1_25_06_19.cc | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 I_anno/Programmazione_1/ex1_25_06_19.cc diff --git a/I_anno/Programmazione_1/ex1_25_06_19.cc b/I_anno/Programmazione_1/ex1_25_06_19.cc new file mode 100644 index 0000000..f28a09b --- /dev/null +++ b/I_anno/Programmazione_1/ex1_25_06_19.cc @@ -0,0 +1,45 @@ +#include +#include +#include + +using namespace std; + +template +bool func(int (&A)[N][M], short k, double x) { + for(int i = 0; i < M; ++i) { + vector > v; + + for(int j = 0; j < N-1; ++j) { + v.push_back({A[j][i], A[j+1][i]}); + } + + int check_num = 0; + + for(auto const& i : v) { + if(i.second == 0) continue; + double elem = static_cast(i.first) / static_cast(i.second); + + if(elem < x) + check_num++; + } + + if(check_num == k) + return true; + } + + + return false; +} + +int main() { + int A[4][3] = { + {2, 3, 5}, + {10, 20, 10}, + {90, 19, 69}, + {10, 0, 0}, + }; + + cout << func(A, 2, 0.005) << endl; // 0 + cout << func(A, 2, 1.0) << endl; // 1 + return 0; +} -- cgit v1.2.3-18-g5258