object Ejercicio1 {
def T(n:Int):Long ={
if (n==0) 4
else{
if (n==1) 12
else
6*T(n-1)-9*T(n-2)
}
}
def f(n:Int):Double = {
4*Math.pow(3,n)
}
def main(a:Array[String]):Unit = {
val l = (1 to 20).toList
l.foreach(i => println(T(i)+ " "+ f(i)))
}
}
object Ejercicio2 {
def T(n:Int):Long ={
if (n==1) 15
else T(n/2)+1
}
def f(n:Int):Double = {
Math.log(n)/Math.log(2)+15
}
def main(a:Array[String]):Unit = {
val l = (1 to 10).toList.map(x => Math.pow(2,x).toInt)
l.foreach(i => println(T(i)+ " "+ f(i)))
}
}
object Ejercicio3 {
def T(n:Int):Long ={
if (n==1) 2
else 2*T(n/2)+Math.pow(n,2).toLong
}
def f(n:Int):Double = {
2*Math.pow(n,2)-2*n+2*n
}
def main(a:Array[String]):Unit = {
val l = (1 to 10).toList.map(x => Math.pow(2,x).toInt)
l.foreach(i => println(T(i)+ " "+ f(i)))
}
}