Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109367
  • 博文数量: 74
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 757
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-20 22:42
个人简介

相信生命中的无限潜能

文章分类

全部博文(74)

文章存档

2016年(1)

2015年(30)

2014年(30)

2013年(13)

我的朋友

分类: C/C++

2014-01-13 10:49:20


点击(此处)折叠或打开

  1. #include <stdio.h>

  2. int f(int x)
  3. {
  4.     printf("f--(%d)--%p\n",x,&x);
  5.     if(x<=0){
  6.          printf("f++(%d)++%p\n",x,&x);
  7.         return 5;
  8.     }else{
  9.           int num=f(x-1);
  10.           printf("return from f(%d) the num is:%d\n",x-1,num);
  11.          printf("f**(%d)**%p\n",x,&x);
  12.     // return 2*f(x-1)+3;//2*f(3-1)+3=2*f(2)+3 => 2*f(2-1)+3 => 2*f(1-1)+3=2*f(0)+3;属于递推 2*f(2)+3 2*f(1)+3 2*f(0)+3
  13.         return 2*num+3;
  14.     }
  15. }
  16. int main()
  17. {
  18.     printf("%d\n",f(3));
  19.     return 0;
  20. }
  21. 运算结果
  22. f--(3)--0xbfb696f0
    f--(2)--0xbfb696c0
    f--(1)--0xbfb69690
    f--(0)--0xbfb69660
    f++(0)++0xbfb69660
    return from f(0) the num is:5
    f**(1)**0xbfb69690
    return from f(1) the num is:13
    f**(2)**0xbfb696c0
    return from f(2) the num is:29
    f**(3)**0xbfb696f0
    61




阅读(744) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~