以下程序的输出结果是:?void sub(int *a,int n,int k);void main(){int x=0;sub(&x,8,1);printf("%d\n",x);}void sub(int *a,int n,int k){if(k<=n)sub(a,n/2,2*k);*a+=k;}正确的答案是:7我想知道具体是怎么算的,尤其是递归的那部分,能帮我详细分析下吗?谢谢!