fish7fish7 发布留言 2008-7-31 19:55
[c高手进]
帮忙编程解决这两道小学奥数题:
1、现有1角币1张,2角币1张,5角币1张,1元币4张,5元币2张。用这些钱可以付出不同的各种数额的币值有多少种?
2、把5040分拆成4个不同自然数的乘积,使这几个数的和为最小,若分成6个自然数的乘积呢?
卧龙孔明 发布留言 2008-7-31 19:58
第一个,dp
第二个,简单的分解和枚举...
fish7fish7 发布留言 2008-7-31 19:59
dp什么意思?不懂![tk12]
卧龙孔明 发布留言 2008-7-31 20:00
面对楼主这种标题,我不想回答
我不想当所谓的“高手”
因为我是版主,我尽责任来看一下帖子
fish7fish7 发布留言 2008-7-31 20:00
第二个我这么编的,不知道为什么不对,高手指点!
#include
void main()
{long int a,b,c,d,e,f,g,h,i,min=9999999;
for(a=1;a<=5040;a++)
for(b=1;b<=5040;b++)
for(c=1;c<=5040;c++)
for(d=1;d<=5040;d++)
if(a*b*c*d==5040&&a!=b&&b!=c&&c!=d&&a!=c&&a!=d&&b!=d)
{
e=a+b+c+d;
if(e{min=e;
f=a;
g=b;
h=c;
i=d;
}
}
printf("min=%.ld\n",min);
printf("%d\n",f);
printf("%d\n",g);
printf("%d\n",h);
printf("%d\n",i);
}
页: [1]