From 46d6c42c81be3c2b78254e009945578e10fab611 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Mon, 15 May 2017 18:02:39 +0200 Subject: added somme from GATOR contest --- cpp/somme.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 cpp/somme.cpp (limited to 'cpp') diff --git a/cpp/somme.cpp b/cpp/somme.cpp new file mode 100644 index 0000000..e42ad64 --- /dev/null +++ b/cpp/somme.cpp @@ -0,0 +1,63 @@ +/* gator 2017 +input: 1 5 +output: 1 +*/ + +#include +#include + +bool pari(int n) +{ + return ((n % 2) == 0) ? true : false; +} + +int sequenza(int n, bool pollatz, int tCollatz = -1) +{ + int m; + + if(pollatz) + m = 5; + else + m = 3; + + int tot = 1; + + + while(n != 1) { + if(pari(n)) + n /= 2; + else + n = n*m+1; + + + tot++; + + if(tCollatz != -1 && tot > tCollatz) + break; + + } + + return tot; +} + +int main() +{ + std::ifstream in("input.txt"); + std::ofstream out("output.txt"); + + int N1, N2, tot = 0, collatz; + in >> N1 >> N2; + + for(int i = N1; i <= N2; i++) { + collatz = sequenza(i, false); + if(sequenza(i, true, collatz) < collatz) + tot++; + } + + out << tot; + + out.close(); + in.close(); + + return 0; +} \ No newline at end of file -- cgit v1.2.3-18-g5258