您的位置:首页 > 编程语言 > C语言/C++

关于C语言递归函数的心得及一些例题

2020-02-15 06:40 267 查看

关于C语言递归函数的心得及一些例题

递归,是一种函数调用,简单来说,函数内容无非就是两部分,第一部分是出口,另一部分则是循环调用的语句。下面,可以通过具体的函数来理解什么是递归。
1.阶乘:

double fact(int n) {
if (n == 1 || n == 0)
return 1;
else return(n * fact(n - 1));
}

2.指数函数:

/*x是底数,n是指数*/
double calc_pow(double x, int n) {
if (n == 1)
return x;
else return (x * calc_pow(x, n - 1));
}

3.Fabonacci数列:

/*f返回第n个斐波那契数列*/
int f(int n) {
int sum;
if (n == 0) {
sum = 0;
}
else if (n == 1) {
sum = 1;
}
else {
sum = f(n - 2) + f(n - 1);
}
return sum;
}

4.顺序输出整数:

void printdigits(int n) {
if (n < 10) {//出口
printf("%d\n", n);
}
else {
printdigits(n / 10);//12345-1234-123-12-1-12%10-123%10-1234%10-12345%10
printf("%d\n", n % 10);
}
}

5.十进制换二进制:

void dectobin(int n) {
if (n == 0) {
printf("0");
}
else if (n == 1) {
printf("1");
}
else {
dectobin(n / 2);//10-5-2-1  1-1 2-0 5-1 10-0
printf("%d", n % 2);
}
}
  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
1b5d7 浅雨梦梨 发布了3 篇原创文章 · 获赞 1 · 访问量 89 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: