#include<stdio.h>
const MAX=11;
int sum=0,temp=1;
int k,n,i;
int c[MAX];
void s(int a, int b)
{
if(k==a)
{
sum+=temp;
return;
}
if(b<n)
{
temp*=c[b];
s(a+1,b+1);
temp/=c[b];
s(a,b+1);
}
}
int main()
{
scanf("%d%d\n",&n,&k);
if(k>=1 && k<=n && n<=10)
{
for(i=0;i<n;i++)
scanf("%d",&c[i]);
}
s(0,0);
printf("%d",sum);
return 0;
}
帮我分析以下接下去这段代码是怎么运行的
void s(int a, int b)
{
if(k==a)
{
sum+=temp;
return;
}
if(b<n)
{
temp*=c[b];
s(a+1,b+1);
temp/=c[b];
s(a,b+1);
}
}