首页 > 试题广场 >

下列程序执行func(15,20)的结果为( &...

[单选题]
下列程序执行func(15,20)的结果为()
int func(int i, int j){
    if (i <= 0 || j <= 0)
        return 1;
    return 2 * func(i - 3, j / 2);
}




  • 8
  • 16
  • 24
  • 32
f(0,0)=1
f(3,1)=2*f(0,0)=2
f(6,2)=2*f(3,1)=4
f(9,5)=2*f(6,2)=8
f(12,10)=2*f(9,5)=16
f(15,20)=2*f(12,10)=32
解析来了
发表于 2019-01-07 13:12:43 回复(1)
 i        j
15    20
12    10    2*
9       5     2^2
6       2     2^3
3       1     2^4
0       0     2^5         -------->32
发表于 2019-01-03 16:08:30 回复(1)

i 15 12 9 6 3 0
j 20 10 5 2 1 0
    2*2*2*2*2*1= 32

编辑于 2020-03-06 12:58:24 回复(0)
f(15,20)=
    2*f(12,10)=
    4*f(9,5)=
    8*f(6,2)=
    16*f(3,1)=
    32*f(0,0)=32
发表于 2019-08-15 16:44:56 回复(0)
怎么都没解析,😭
发表于 2018-12-29 15:43:39 回复(1)
发表于 2023-03-27 01:03:31 回复(0)
i-3 => 15-3 减4次还大于0
j/2 => 20/2 很容易就能得出2的4次方是最大的20以内的指数
所以2 * 后面还有4个2 结果即使2的5次方为32
发表于 2023-02-01 23:05:18 回复(0)
神理解递归。不停用自己解决自己
发表于 2019-11-22 00:05:20 回复(0)
这类题要找到结束点然后反着推

发表于 2019-09-26 16:19:00 回复(0)
f(15,20)=2*f(12,10)=4*f(9,5)=8*f(6,2)=16*f(3,1)=32*f(0,0)=32

发表于 2019-02-02 14:45:47 回复(0)