递归函数产生死循环
object inout45 {
def f():Unit = {
println("f.....被调用了")
f()
}
def main(args: Array[String]): Unit = {
f()
println("over")
}
}
求1+2+3+...+99+100的和
object inout46 {
def f(n:Int):Int = {
if(n==1)
1
else
f(n-1) + n
}
def main(args: Array[String]): Unit = {
val rst = f(100)
println(rst)
}
}
斐波那契数列
object inout47 {
def f(n:Int):Int = {
if(n == 1){
1
} else if(n == 2){
2
}else{
f(n-1)*n
}
}
def main(args:Array[String]):Unit = {
val rst = f(10)
println(rst)
}
}
把输入的整数的各个位数上的数值输出来
object inout48 {
def f(n:Int):Unit = {
if(n<9){
println(n)
}else{
f(n/10)
println(n%10)
}
}
def main(args:Array[String]):Unit = {
f(12345)
}
}
如果:n==1.直接从A移动到C,否则:1.把n-1个盘子从A移动到B 2.把一个盘子从A移动到C 3.把n-1个盘子从B移动到C
object inout49 {
def f(n:Int,A:Char,B:Char,C:Char):Unit = {
if(n == 1){
println(s"${A}--->${C}")
}else{
f(n-1,A,C,B)
println(s"${A}--->${C}")
f(n-1,B,A,C )
}
}
def main(args: Array[String]):Unit = {
f(4,'A','B','C')
}
}