C/C++の宿題を片付けます 59代目
■ このスレッドは過去ログ倉庫に格納されています
0730729
2006/02/02(木) 19:23:34#include<stdio.h>
int search(const int w[],int i,int length,int use[],int W,int c){
if(W == 0){
for(i=0;i<length;++i)
if(use[i])printf("%d ",w[i]);
printf("\n");
return c+1;
}else if(W < 0 || i==length)return c;
use[i]=1;
c = search(w,i+1,length,use,W-w[i],c);
use[i]=0;
return search(w,i+1,length,use,W,c);
}
int main(){
const int w[]={10,5,15,7,3};
int use[sizeof(w)/sizeof(w[0])]={0};
printf("組み合わせは%d通り\n",search(w,0,5,use,22,0));
}
■ このスレッドは過去ログ倉庫に格納されています