首页 > 试题广场 >

以下代码输出的是()? int foo(int x,i

[单选题]
以下代码输出的是()?
int foo(int x,int y) {
if(x<=0||y<=0) return 1;
return 3*foo(x-1,y/2);
}
cout<<foo(666,5)<<endl;
  • 27
  • 666
  • 81
  • 9
递归,if中逻辑运算来判断结束,每一次进入,如果y小于等于0就跳出递归函数,轮了三次,3*3*3*1=27
发表于 2018-11-06 17:00:49 回复(4)
int foo(int x,int y) { 
  if(x<=0||y<=0) return 1; 
  return 3*foo(x-1,y/2);
} 
cout<<foo(666,5)<<endl;
第一次:x= 666 ,y = 5 ,不满足if条件,第三行调用:3 * foo(666-1 , 5/2)
第二次:x= 665 ,y = 2.5,不满足if 条件,第三行再次调用: 3 * foo(665-1 , 2.5/2)
第三次:x= 664 ,y = 1.25,不满足if 条件,第三行再次调用: 3 * foo(664-1 , 1.25/2)
此时已经 有3次 * 3,第四次:x= 663 ,y = 0.625,满足if条件,return 1,则结果为 3 * 3 * 3 * 1 = 27。
发表于 2022-01-10 11:28:23 回复(1)
Y,<=1
发表于 2023-05-12 00:28:22 回复(0)
我职能岗给我代码题???😭
发表于 2022-01-11 07:51:16 回复(0)