递归函数:自己调用自己的函数就是递归函数,可能会导致死循环,需明确写出函数的返回值\n代码结构:\n ① 基本情况,可直接求解\n ② 递归情况,大事化小,自己调用自己\n有默认值的函数:\n\n变参:\n 1.创建不带()的方法:def 方法名 : [ 返回值类型 ] = { }\n 2.创建接受变参的方法:参数类型 * \n 3.变参传值:①参数类型对应值。 eg:b(\"Java\",\"Scala\")\n ②_* eg:b(List_*)\n链式风格:\n特点:可读性较好,整体风格简洁\n语法为 this.type 和 this \n\n 练习\n 1.计算累加\n 定义一个函数求1-n的和;\n 基本情况:f(1)=1\n 递归情况:f(n)=n+f(n-1)\n\n\n\n 2.计算整数的阶乘问题\n 计算一个整数的阶乘是一个经典的递归问题。假设我们要计算n的阶乘,记作n!=1*2*3*4*...*n,其定义为:\n基本情况:0!=1\n递归情况:n! = n*(n-1)!\n\n 3.斐波那契数列\n 定义:基本情况:f(0) = 1,f(1) = 1\n 递归情况:f(n) = f(n-1)+f(n-2)(当n>=2)。求它的第n项。\n\n 4.打印数字的各个位数\n 基本情况:f(n)=输出个位,n\u003C9\n 递归情况:f(n) = f(n/10)+输出个位(当n>=10)\n\n 5.极简汉诺塔\n f(n,A,B,C):把n个盘子从A移到C,借用B过渡\n\n