bool next[21];
void fun_fenzhi(int n, int sum)
{
if(n<=0 || sum<=0)
return;
if(n < sum)
{
next[n]=true;
fun_fenzhi(n-1,sum-n);
next[n]=false;
fun_fenzhi(n-1,sum);
}
else if(n == sum)
{
next[n]=true;
// print_arr(next);
count++;
next[n]=false;
fun_fenzhi(n-1,sum);
}
else if(n > sum)
{
next[n]=false;
fun_fenzhi(n-1,sum);
}
}
void testfun_fenzhi()
{
memset(next,false,10);
clock_t start1 = clock();
fun_fenzhi(20,100);
clock_t end1 = clock();
long acc1 = (end1 - start1);
cout<<count<<endl;
printf("average time is %d\n", acc1 / 10 );
}
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,
最新推荐文章于 2019-09-06 11:21:57 发布