windowsmac 发布留言 2008-8-1 14:03
一道题目不会做,怎么做呢?
现有1角币1张,2角币1张,5角币1张,1元币4张,5元币2张。用这些钱可以付出不同的各种数额的币值有多少种
lingluoz 发布留言 2008-8-1 15:07
一角两角五角 7种币值
一元5种币值
5元3种币值
并且币值没有重叠的
所以
n=7*5*3=35*3=105种
千与千寻 发布留言 2008-8-1 16:40
应该用数组吧
lingluoz 发布留言 2008-8-1 16:48
人脑算最简单。。。
windowsmac 发布留言 2008-8-1 18:47
谢谢了
netstriker 发布留言 2008-8-1 23:42
#include
int main(int argc,char* argv[])
{
int mao = 1;
int two_mao = 2;
int five_mao = 5;
int one_yuan = 10;
int five_yuan = 50;
int i,j,k,l,m;
int array[100] = {0};
int len=0;
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
for(k=0;k<2;k++)
{
for(l=0;l<2;l++)
{
for(m=0;m<2;m++)
{
//printf("%d %d %d %d %d ",i,j,k,l,m); //各币种的配合情况
int total = five_yuan*i+one_yuan*j+five_mao*k+two_mao*l+mao*m;
++len;
printf("第种%d可能: %d\n",len+1,total);
}
}
}
}
}
printf("一共有%d种可能",len);
return 0;
}
是从最小的币种组合到最大的组合,可以参考一下。netstriker 发布留言 2008-8-1 23:43
我是以“角”为最少单位的,不要误会了哦。。。。把角转换一下为元就好看很多了卧龙孔明 发布留言 2008-8-2 00:02
背包问题广陵绝唱 发布留言 2008-8-2 00:54
[code]/*******************************************************************************
现有1角币1张,2角币1张,5角币1张,1元币4张,5元币2张。用这些钱可以
付出不同的各种数额的币值有多少种.
根据题意写出这个程序,也不知道结果对不对,程序的思维也有些乱,还请大家
多多指教。谢谢。
*******************************************************************************/
#include
int jianche(float *p,int k)/*用于检测是否出现相同的钱额*/
{
int i,j;
int fanhui=1;
for(i=0;i for(j=i+1;j if(p) return fanhui=0;
return fanhui;
}
int main(void)
{
float jiao[8]={0.0,0.1,0.2,0.3,0.5,0.6,0.7,0.8}; /* 角钱可能出现的币值 */
float yuan_1=1.0,yuan_5=5.0; /* 元钱 */
float zhong[200];/* 总额,用于检测是否有相同数值出现 */
int i,j,k,jishu=0;
for(i=0;i<8;i++)
for(j=0;j<5;j++)
for(k=0;k<3;k++)
{
if(!(i+j+k)) continue;
zhong[jishu]=jiao!=0.0)
printf("总额%.2f=一元%d张+五元%d张+角%.2f元 ",
zhong[jishu],j,k,i);
if(!(jishu%2)) puts("");
jishu++;
}
printf("\n共有%d种付币方法\n",jishu);
getch();
}
[/code]
[ 本帖最后由 广陵绝唱 于 2008-8-2 00:57 编辑 [/it]]
页: [1]