穷举法解决组合问题
2013-12-23 11:39
309 查看
在下面的加法算式中,不同的符号代表不同的数字,相同的符号代表相同的数字。请设计程序求出"都、要、学、C"4个符号分别代表的数字。
[cpp] view
plaincopyprint?
h
k h
j k h
+ i j k h
________________
2 0 0 8
提示:让计算机解奥数题。穷举"都、要、学、C"4个符号分别代表的数字(从0到9),然后进行组合,如果组合起来符合规则(不同的符号代表不同的数字,相同的符号代表相同的数字,且使等式成立),则为正解。
未优化前的代码
[cpp] view
plaincopyprint?
h
k h
j k h
+ i j k h
________________
2 0 0 8
提示:让计算机解奥数题。穷举"都、要、学、C"4个符号分别代表的数字(从0到9),然后进行组合,如果组合起来符合规则(不同的符号代表不同的数字,相同的符号代表相同的数字,且使等式成立),则为正解。
未优化前的代码
#include<iostream> using namespace std; int main() { int i,j,k,h; for(i=0;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) for(h=0;h<=9;h++) { if(2008==(4*h+3*k*10+2*j*100+i*1000)&&0!=(i-j)*(j-k)*(k-h)*(h-i)&&i!=0) { cout<<"i="<<i<<" "; cout<<"j="<<j<<" "; cout<<"k="<<k<<" "; cout<<"h="<<h<<endl; } } return 0; }
相关文章推荐
- 关于Calendar类的日与月
- 百度系团队创办快乐学:用技术改造教育行业
- inotify -- Linux 2.6 内核中的文件系统变化通知机制
- 模态窗口
- extundelete --linux下文件反删除介绍
- 批量改名的bat
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下
- 敏捷研发
- Java入门:缓冲区溢出编程心得
- @html.ActionLink的几种参数格式
- VS 2010 应用程序无法启动
- 《视频解密》中文版(第四版)第十章 H.261和H.263(第二部分)
- 去掉linux内核打印信息的一种方法
- Java获取数据库自增主键表中插入数据的ID
- c# mongo 返回指定的列
- 企业微博营销的根本——活动营销。
- JS判断输入框的内容为整数或者是小数,不能有其他符号和字符
- Codeforces Round #219 (Div. 2)
- double精确计算