1.什么是递归函数?
递归函数就是函数自己调用自己
2.递归函数作用:
递归函数可以实现循环相关的功能
3.注意点:
递归函数虽然可以实现循环相关的功能,但是递归函数的性能比循环要差
需求:
要求用户输入密码,如果输入错误,要求重新输入
1.定义一个变量保存用户输入的密码
2.提示用户输入密码
3.接收用户密码
4.判断用户密码是否正确
5.显示欢迎回来
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pwd=0;
do{
printf("请输入密码:");
scanf("%i",&pwd);
}while(pwd!=123456);
printf("welcome\n");
return 0;
}
使用递归函数的方式:
#include <stdio.h>
#include <stdlib.h>
int main()
{
passwd();
printf("welcome\n");
return 0;
}
void passwd(){
//1.定义变量保存新的密码
int pwd=0;
//2.提示用户输入密码
printf("请输入密码:");
//3.输入密码
scanf("%i",&pwd);
//4.判断用户输入的密码是否正确
if(pwd!=123456)
{
passwd();
}
}
递归函数的执行流程
需求:设计一个函数来计算B的n次方
3(0)=1
3(1)=3
3(2)=3*3=9
3(3)=3*3*3=27
规律:
3(n)=3(n-1)*3
---------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int pow(int base,int n);
int main()
{
int i,j;
printf("请输入i、j:");
scanf("%i %i",&i,&j);
int res=pow(i,j);
printf("%d^%d=%d\n",i,j,res);
return 0;
}
//pow函数的作用:求base的n次方
int pow(int base,int n)
{
if(n==0)
{
return 1;
}
else
{
return pow(base,n-1)*base;
}
}
用递归的方法求3!等于多少?
#include <stdio.h>
#include <stdlib.h>
int pow(int n);
int main()
{
int res=pow(3);
printf("%d\n",res);
return 0;
}
//3!
int pow(int n)
{
if(n==0)
{
return 1;
}
else
{
return n*pow(n-1);
}
}
结果是6