函数递归

作者: akuan | 来源:发表于2020-11-14 04:45 被阅读0次

函数main()在下面例子里调用函数up_and_down(),我们称这为“第一层递归”,然后up_and_down()调用自己,我们称之为“第二层递归”,第二层调用第三层,以此类推。

#include <stdio.h>
void up_and_down(int);
int main(void) {
  up_and_down(1);
  return 0;
}
void up_and_down(int n) {
  printf("Level %d: n location %p\n", n, &n);
  if (n < 4)
    up_and_down(n + 1);
  // this line will be executed certainly in the end in this method
  printf("LEVEL %d: n location %p\n", n, &n);
}
Level 1: n location 0x0012ff48
Level 2: n location 0x0012ff3c
Level 3: n location 0x0012ff30
Level 4: n location 0x0012ff24
LEVEL 4: n location 0x0012ff24
LEVEL 3: n location 0x0012ff30
LEVEL 2: n location 0x0012ff3c
LEVEL 1: n location 0x0012ff48
递归流程
下面写一个方法,打印出一个十进制整数的二进制表示。例如二进制1101的十进制数为1×2^3 +1×2^2 +0×2^1 +1×2^0 = 13
#include <stdio.h>
void to_binary(unsigned long n);
int main(void) {
  unsigned long number;
  printf("Enter an integer (q to quit):\n");
  while (scanf("%lu", &number) == 1) {
    printf("Binary equivalent: ");
    to_binary(number);
    putchar('\n');
    printf("Enter an integer (q to quit):\n");
  }
  printf("Done.\n");
  return 0;
}

void to_binary(unsigned long n) { /* recursive function */
  int r;
  r = n % 2;// 即右移>>一下,r即是移出的数
  if (n >= 2)
    to_binary(n / 2);
  putchar(r == 0 ? '0' : '1');
  return;
}
Enter an integer (q to quit):
|13
Binary equivalent: 1101
Enter an integer (q to quit):
|255
Binary equivalent: 11111111
Enter an integer (q to quit):
|1024
Binary equivalent: 10000000000
Enter an integer (q to quit):
|q
done.

斐波纳契数列:

unsigned long Fibonacci(unsigned n) {
    if (n > 2)
        return Fibonacci(n-1) + Fibonacci(n-2);
    else
        return 1;
}

相关文章

  • Day10递归函数、模块、迭代器、生成器

    一、递归函数 1、什么是递归函数 在函数中调用函数本身的函数就是递归函数。 2、递归的作用 循环能做的递归都能做 ...

  • day11 函数(3)

    递归函数 实际开发的时候,能不用递归就不用 什么是递归函数 函数中调用函数本身的函数就是递归函数 递归的作用: 循...

  • python 递归函数

    递归函数 递归函数 : 在函数的调用自身 递归边界 : 退出递归的终止条件 例1,函数func如果没有设备递归边界...

  • day11-日常(递归函数、模块、迭代器、生成器)

    递归函数(实际开发的时候,能不用递归就不用) 1.什么是递归函数 函数中调用函数本身的函数就是递归函数 2.递归的...

  • 2019-01-07day11学习总结

    递归函数 实际开发的时候能不用递归就不用递归 1. 什么是递归函数 函数中调用函数本身的函数就是递归函数 2. 递...

  • 递归函数、模块、生成器、迭代器

    一、递归函数 实际开发的时候,能不用递归就不用 1.什么是递归函数 函数中调用函数本身的函数就是递归函数 2.递归...

  • day 11总结

    递归函数 实际开发的时候,能不用递归就不用1.什么是递归函数函数中调用函数本身的函数就是递归函数 2.递归的作用:...

  • Day11笔记

    实际开发的时候,能不用递归就不用 递归函数 1.什么是递归函数函数中调用函数本身的函数就是递归函数 2.递归的作用...

  • day11 生成器迭代器

    一、递归函数 1.什么是递归函数在函数中调用函数本身的函数就是递归函数 2.递归的作用:循环能做的事,递归都能做 ...

  • Day_11-函数(三)

    一、递归函数 实际开发时候,能不用递归就不用 1.什么是递归函数函数中调用函数本身的函数就是递归函数 2.递归的作...

网友评论

    本文标题:函数递归

    本文链接:https://www.haomeiwen.com/subject/dqgsbktx.html