穷举法

穷举法

例:现有面额为15分,23分,29分,41分和67分的硬币,寻找所有组成188分(1808分)的可能组合。

程序:

void Money(int a,int b,int c,int d,int e)         //15分 23分 29分 41分 67分面值  凑1808分

{

int n=1808;

for(int i=0;i<(n/e+1);i++)

{

for(int j=0;j<(n/d+1);j++)

{

for(int k=0;k<(n/c+1);k++)

{

for(int l=0;l<(n/b+1);l++)

{

for(int m=0;m<(n/a+1);m++)

{

if(i*e+j*d+k*c+l*b+m*a==n)

{

printf("面值 %d   %d   %d   %d   %d\n张数 %2d   %2d   %2d   %2d   %2d\n",a,b,c,d,e,i,j,k,l,m);

}

}

}

}

}

}

}

 

int main()

{

Money(15,23,29,41,67);

return 0;

}

列举出所有情况。

你可能感兴趣的:(穷举法)