1.递归:不改变问题性质,逐渐缩小问题规模,直至得到解。
要素:结束条件------递归已知条件
递归方程
2.实现:递归函数-----函数的自我调用
3.递归的执行效率不高
//输出给定的正整数x的二进制码
void Bin(int x)
{
if(x){
Bin(x/2);
printf("%2d",x%2);
}
}
//输出5!
int Fun(int n)
{
if(n==1) return 1;
else{
return Fun(n-1)*n;
}
}
//输出1+2+3+…+100
x=1;
int Count(int x)
{
if(x==100) return 100;
else{
return Count(x+1)+x;
}
}
//输出给定的整数x的各位数字之和
int Add(int x)
{
if(x==0) return 0;
else return Add(x/10)+x%10;
}
//输出给定的数的逆置数
void Sun(int x)
{
if(x==0){
return;
}
printf("%d",x%10);
Sun(x/10);
}