diff -r 017f621f5835 -r 3ffe978a5664 pre_templates1/collatz.scala --- a/pre_templates1/collatz.scala Thu Nov 04 12:20:12 2021 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -// Preliminary Part about the 3n+1 conjecture -//============================================ - -object CW6a { - -//(1) Complete the collatz function below. It should -// recursively calculate the number of steps needed -// until the collatz series reaches the number 1. -// If needed, you can use an auxiliary function that -// performs the recursion. The function should expect -// arguments in the range of 1 to 1 Million. - -def collatz(n: Long) : Long = ??? - - -//(2) Complete the collatz_max function below. It should -// calculate how many steps are needed for each number -// from 1 up to a bound and then calculate the maximum number of -// steps and the corresponding number that needs that many -// steps. Again, you should expect bounds in the range of 1 -// up to 1 Million. The first component of the pair is -// the maximum number of steps and the second is the -// corresponding number. - -def collatz_max(bnd: Long) : (Long, Long) = ??? - -//(3) Implement a function that calculates the last_odd -// number in a collatz series. For this implement an -// is_pow_of_two function which tests whether a number -// is a power of two. The function is_hard calculates -// whether 3n + 1 is a power of two. Again you can -// assume the input ranges between 1 and 1 Million, -// and also assume that the input of last_odd will not -// be a power of 2. - -def is_pow_of_two(n: Long) : Boolean = ??? - -def is_hard(n: Long) : Boolean = ??? - -def last_odd(n: Long) : Long = ??? - -} -