首页 新闻 会员 周边 捐助

分析代码,回溯法

0
[待解决问题]

#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);
}
}

swmoment的主页 swmoment | 初学一级 | 园豆:194
提问于:2012-07-10 22:12
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册