C语言程序题:用1角,2角,5角的组合数是多少?各种组合分别是什么

C语言程序题:用1角,2角,5角的组合数是多少?各种组合分别是什么

//---------------------------------------------------------------------------

#include <stdio.h>

void compages(int *a,int size_a,int *subset,int need,const int size_sub)
{
int i,sum=0;

if (!need) {
for (i = 0; i < size_sub; i++)
{
printf("%d ",subset[i]);
sum+=subset[i];
}
printf(": %d\n",sum);
}
else {
for (i=0; i<size_a; i++) {
subset[size_sub-need]=a[i];
compages(a+i+1,size_a-i-1,subset,need-1,size_sub);
}
}

}

int main(int argc, char* argv[])
{
int i,s[]={1,2,5},a[3];
for (i=1; i<=3; i++) compages(s,3,a,i,i);

return 0;
}
//---------------------------------------------------------------------------
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-24
a,b,c分别为1角2角5角的张数
for(a=0;a<=10;a++)
for(b=0;b<=5;b++)
for(c=0;c<=2;c++)
if(10*a+5*b+c*2==这里是要组合的钱数)
输出相应的a,b,c就是了。
相似回答