龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

学点 C 语言(35): 函数 - 递归[图](2)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
4. 实例: 阶乘 #include int factorial(int num); int main(void) { int i; for (i = 1; i printf("%d: %dn", i, factorial(i)); getchar(); return 0; } int factorial(int num) { if (num == 1) return(1); el

  4. 实例: 阶乘

#include 

int factorial(int num);

int main(void)

{

  int i;

  for (i = 1; i <= 9; i++)

  printf("%d: %dn", i, factorial(i));

  getchar();  

  return 0;

}

int factorial(int num)

{

  if (num == 1)

    return(1);

  else

    return(num * factorial(num-1));

}

  5. 实例: 整数到二进制

#include 

void IntToBinary(unsigned num);

int main(void)

{

  IntToBinary(255); /* 11111111 */

  getchar();

  return 0;

}

void IntToBinary(unsigned num) {

  int i = num % 2;

  if (num > 1) IntToBinary(num / 2);

  putchar(i ? '1' : '0'); 

//  putchar('0' + i); /* 可代替上面一句 */

}

  6. 剖析递归:

#include 

void prn(unsigned n);

int main(void)

{

  prn(1);

  getchar();

  return 0;

}

void prn(unsigned n) {

  printf("%d: %pn", n, &n); /* A */

  if (n < 4) 

    prn(n+1);        /* B */

  printf("%d: %pn", n, &n); /* C */

}

精彩图集

赞助商链接