这个为什么是120呢

img

这个怎么运行的 为什么会输出120呢
不懂
运行的步骤是什么呢
谢谢大家!

f(15): n =15, n不小于3,执行f(5),注意,此时后面有一句printf没运行,称之为print1
f(5): n = 5,n不小于3,执行f(1),注意,此时后面也有一句printf没运行,称之为print2
f(1):n小于3,输出1,然后
回到print2语句这里,输出5%3=2
回到print1语句这里,输出15%3=0
望采纳,谢谢!

首先就是,套娃开始,==15进去不小于三==,所以进入else,然后现在记住15/3又进去f函数,但是后面还没输出,也就是15%3余0还没有输出,这句话还没执行完,==第二个开始啦==:f(5),然后不小于三,这时候又进去f(5/3),记住这里还没有执行完,也就是5%3余2还没有输出,==第三次了啊==,f(5/3)肯定小于三,然后输出,5除与3是1,所以这个时候先输出1,然后第二次这里输出2,最后就是第一次的输出0,所以就是120

f() 是递归函数,递进顺序 n = 15 , 15 / 3 = 5 = n = 5 , 5 / 3 = 1 = n
回归顺序 n = 1 < 3 ,printf("%d",n) ; 打印出 1
n = 5 ,printf("%d",n % 3); 打印出 2
n = 15,printf("%d", n % 3);打印出 0

120
这里它是分开的三个数组成的
1 2 0

具体过程如下:
15 / 3 = 5
n=5
5 / 3 = 1
n=1
n = 1 < 3 ,printf("%d",n) ; 输出 1;
n = 5 ,printf("%d",n % 3); 输出 2;
n = 15,printf("%d", n % 3);输出 0。

如有帮助,还请帮忙点下采纳!感谢!