#include <stdio.h>
int factorial(int a);
int Fibonacci(a);
long Hanoi(a);
void main()
{
}
函数递归调用:函数本身调用自身。类似于循环。
注意:编写递归程序类似于循环语句需要注意条件,函数调用到什么时候为止,否则会出现死循环。
1.利用递归实现阶乘
int factorial(int a)
{
if(a==1)
{
return 1;
}
else
{
return a*factorial(a-1);//递归调用
}
}
2.斐波那契数列,古典兔子问题。
int Fibonacci(a)
{
if(a==1||a==2)
{
return 1;
}
else
{
return Fibonacci(a-1)+Fibonacci(a-2);
}
}
3.汉诺塔 DIY 根据层数计算多少次
long Hanoi(a)
{
if(a==1)
{
return 1;
}
else
{
return 2*Hanoi(a-1)+1; //H(n) = 2*H(n-1)+1 (n>1)
}
}
4.局部变量:A.作用范围仅限于该函数内;
B.不同函数可以声明相同的名称;
C.复合函数中只在当前的{}内有效。
5.全局变量:A.声明在所有函数之外;
B.可以共同使用;
C.全局变量和局部变量,在局部变量的作用范围内,同名的全局变量不起作用。
//形式参数是局部变量,只在该函数内有效。 注意:在设定的时候必须给类型