哪位dalao会剪枝,请直接修改
代码:
#include <stdio.h>
int N,k,sum,cnt,a[10]={1,0,0,0,0,0,0,0,0};
void dfs(int n)
{
if(n==(k+1))
{
if(sum==N)
{
cnt++;
}
}
else
{
for(int i=a[n-1];i<=N;i++)
{
a[n]=i;
if(sum<=N)
{
sum=sum+a[n];
dfs(n+1);
sum=sum-a[n];
}
}
}
}
int main()
{
scanf("%d%d",&N,&k);
dfs(1);
printf("%d",cnt);
return 0;
}
谢谢!!!