为了账号安全,请及时绑定邮箱和手机立即绑定

C语言数据结构

C语言数据结构

呼如林 2018-12-31 09:00:09
C语言数据结构
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

一、递归的写法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#include <stdio.h>

int g(int m,int n);

int main()

{

    printf("g(3,5)的结果:%d\n",g(3,5));

    return 0;

}

int g(int m,int n)

{

    if(m==0 && n>=0)

        return 0;

    else if(m>0 && n>=0)

        return g(m-1,2*n)+n;

    return 0;

}

递归执行过程:

最后往上依次返回值,5返回0,所以4返回0+20,所以3返回20+10,所以2返回30+5,所以结果就是35。

二、不使用递归的写法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include <stdio.h>

int g(int m,int n);

int main()

{

    printf("g(3,5)的结果:%d\n",g(3,5));

    return 0;

}

int g(int m,int n)

{

    int sum=0;

    while(m--)

    {

        sum=sum+n;

        n=2*n;

    }

    return sum;

}


 


查看完整回答
反对 回复 2019-01-05
  • 1 回答
  • 0 关注
  • 719 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信