首页 > 试题广场 >

调用函数f(15)的输出结果是()

[填空题]
调用函数f(15)的输出结果是1
void f(int n)
{
if(n<3)
printf("%d", n);
else{
f(n/3);
printf("%d", n%3);
}
return;
}
n = 15;
printf("%d", n%3) 要等 f(n/3)里面的函数打印完后才会打印,所以最后的数字是 n%3=0
同理:
n = 15/3;
printf("%d", n%3)  -----------------n%3=2
n = 5/3  < 3 到达边界 printf("%d", n); 也就是1
所以结果 120

发表于 2017-06-12 23:25:59 回复(0)
120

发表于 2021-12-31 09:24:28 回复(0)
递归运算,临时数据保存在栈中,后进先出
发表于 2017-06-22 09:48:03 回复(0)
很耿直地写021
编辑于 2017-05-14 09:57:38 回复(4)
只要看好else中的printf语句中,输出的是n对3的取余就可以了。。。。别看错了!!
发表于 2017-05-06 14:08:28 回复(2)

图片说明

发表于 2018-07-05 16:21:26 回复(0)
120
发表于 2022-08-30 19:29:48 回复(0)
递归调用后进先出021
变成了120
发表于 2022-08-27 18:07:15 回复(0)
120
发表于 2022-01-22 14:30:28 回复(0)
输入 15  输出 0 
输入 5 输出 2
输入 1 输出 1
递归的原因,输出是最后 所以120
发表于 2022-01-14 14:49:33 回复(0)

知识点:递归调用
思路:

  • 主函数:输入15,调用1,输出0;
  • 调用1:输入5,调用2,输出2;
  • 调用2:输入1,输出1;

整理:输入15,输入5,输入1,输出1输出2,输出0
结果:120;

发表于 2021-04-19 11:34:39 回复(0)
120
发表于 2021-01-24 14:44:40 回复(0)
2
发表于 2020-12-14 18:35:37 回复(0)
120
发表于 2020-06-11 15:15:19 回复(0)
120
发表于 2020-03-27 21:17:53 回复(0)
120
迭代

发表于 2020-01-18 15:04:11 回复(0)
120
发表于 2019-12-24 10:10:17 回复(0)
120
发表于 2019-07-02 17:54:55 回复(0)
120
发表于 2018-12-10 21:16:42 回复(0)
120
发表于 2018-08-29 15:07:30 回复(0)