博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
穷举法组合数值,求更精
阅读量:6452 次
发布时间:2019-06-23

本文共 2144 字,大约阅读时间需要 7 分钟。

  hot3.png

在英国,货币是由英镑£,便士p构成的。一共有八种钱币在流通:
1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) 和 £2 (200p).
要构造£2可以用如下方法:
1
×
£1 + 1
×
50p + 2
×
20p + 1
×
5p + 1
×
2p + 3
×
1p
允许使用任意数目的钱币,一共有多少种构造£2的方法?

第一次穷举法(我很菜):

代码跟第二次的差不多,就是第一次没有这些if 跟break:

if(i_p1*p1+i_p2*p2>f2)break;  if(i_p1*p1+i_p2*p2+i_p5*p5>f2)break;

省略后面雷同。。。

计算结果所花时间为180s。

下面是第二次的:(计算结果所花时间18s)

#include 
#define p1 1#define p2 2#define p5 5#define p10 10#define p20 20#define p50 50#define f1 100#define f2 200int main(){ int count=0,i_p1,i_p2,i_p5,i_p10,i_p20,i_p50,i_f1,i_f2; for(i_p1=0; i_p1<=f2; i_p1++) { for(i_p2=0; i_p2<=f1; i_p2++) { if(i_p1*p1+i_p2*p2>f2)break; for(i_p5=0; i_p5<=40; i_p5++) { if(i_p1*p1+i_p2*p2+i_p5*p5>f2)break; for(i_p10=0; i_p10<=p20; i_p10++) { if(i_p1*p1+i_p2*p2+i_p5*p5+i_p10*p10>f2)break; for(i_p20=0; i_p20<=p10; i_p20++) { if(i_p1*p1+i_p2*p2+i_p5*p5+i_p10*p10+i_p20*p20>f2)break; for(i_p50=0; i_p50<=4; i_p50++) { if(i_p1*p1+i_p2*p2+i_p5*p5+i_p10*p10+i_p20*p20+i_p50*p50>f2)break; for(i_f1=0; i_f1<=2; i_f1++) { if(i_p1*p1+i_p2*p2+i_p5*p5+i_p10*p10+i_p20*p20+i_p50*p50+i_f1*f1>f2)break; for(i_f2=0; i_f2<=1; i_f2++) { if(i_p1*p1+i_p2*p2+i_p5*p5+i_p10*p10+i_p20*p20+i_p50*p50+i_f1*f1+i_f2*f2==f2) { count++; printf("%d\t1:%d2:%d5:%d10:%d20:%d50:%df1:%df2:%d\n",count,i_p1,i_p2,i_p5,i_p10,i_p20,i_p50,i_f1,i_f2 ); } } } } } } } } } printf("%d\n",count); return 0;}
请各位大大提点一下,有没有更好的办法,我每次只能想到穷举法。。。囧

转载于:https://my.oschina.net/lplp78/blog/111933

你可能感兴趣的文章
关于最小生成树中的kruskal算法中判断两个点是否在同一个连通分量的方法总结...
查看>>
【译】Linux系统和性能监控(4)
查看>>
开篇,博客的申请理由
查看>>
点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。...
查看>>
Ubuntu常用笔记
查看>>
Token和session 详解
查看>>
JMeter IP欺骗压测
查看>>
Serializers 序列化组件
查看>>
最简单的RPC框架实现
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
CountDownLatch与thread-join()的区别
查看>>
linux下MySQL安装登录及操作
查看>>
centos 7 部署LDAP服务
查看>>
揭秘马云帝国内幕:马云的野心有多大
查看>>
topcoder srm 680 div1
查看>>
算法专题(1)-信息学基本解题流程!
查看>>
模拟文件系统
查看>>
使用SSH连接Windows10 Ubuntu (WSL),Pycharm
查看>>
poj2155
查看>>