rendered paste body#include "windows.h"
#include "stdio.h"
int ary[] = {1,2,50,20,100,30,1};
int ary_len = sizeof(ary)/ sizeof(int);
bool can_be_done(int current_sum,int current_index,int target_sum)
{
if (current_sum == target_sum)
{
return true;
}
else if (current_sum > target_sum)
{
return false;
}
else
{
if (current_index+1 == ary_len)
{
return false;
}
if (can_be_done(current_sum + ary[current_index+1],current_index+1,target_sum))
{
printf("%d ",ary[current_index+1]);
return true;
}
else
{
if(can_be_done(current_sum,current_index+1,target_sum))
{
//printf("%d ",ary[current_index]);
return true;
}
else
{
return false;
}
}
}
}
void main( int argc, char *argv[ ], char *envp[ ] )
{
if (can_be_done(0,-1,150))
{
printf("done!");
}
else
{
printf("not done");
}
}