C++第11周项目2(7)参考——都要学C
来源:互联网 发布:怎么开启内网端口 编辑:程序博客网 时间:2024/05/28 11:29
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
【项目2:穷举法解决组合问题】先阅读例题,领会穷举法(意为“穷尽式列举”,也称枚举)的思想,然后自行选题进行解决,掌握这种程序设计的一般方法。
任务:利用穷举的方法解决下面的问题(选做一道即算完成任务,其他可以抽时间自由安排,多做会使你更聪明。)
(7)在下面的加法算式中,不同的符号代表不同的数字,相同的符号代表相同的数字。请设计程序求出"都、要、学、C"4个符号分别代表的数字。
C 学 C 要 学 C+ 都 要 学 C________________ 2 0 0 8
提示:让计算机解奥数题。穷举"都、要、学、C"4个符号分别代表的数字(从0到9),然后进行组合,如果组合起来符合规则(不同的符号代表不同的数字,相同的符号代表相同的数字,且使等式成立),则为正解。
未优化前的代码
#include <iostream> using namespace std; int main() { int dou,yao,xue,c,s;//变量这样取,比用i,j,p,q之类的要清晰得多for(dou=1;dou<3;dou++)for(yao=0;yao<10;yao++)for(xue=0;xue<10;xue++)for(c=0;c<10;c++)if((dou-yao)*(dou-xue)*(dou-c)*(yao-xue)*(yao-c)*(xue-c)!=0)//一个技巧:表示两两不同可以这样做{s=4*c+3*xue*10+2*yao*100+dou*1000;if(2008==s) cout<<"都:"<<dou<<" 要:"<<yao<<" 学:"<<xue<<" C:"<<c<<endl;}return 0;}
运行结果
效率更高的解法
#include <iostream> using namespace std; int main() { int dou,yao,xue,c,s;for(dou=1;dou<3;dou++)for(yao=0;yao<10;yao++){if(dou==yao) continue;//“都”和“要”的取值如果相同了,将不再考虑另外两字的取值,效果可观for(xue=0;xue<10;xue++){if(xue==yao||xue==dou) continue; //理由同上for(c=0;c<10;c++)if((dou-c)*(yao-c)*(xue-c)!=0){s=4*c+3*xue*10+2*yao*100+dou*1000;if(2008==s) cout<<"都:"<<dou<<" 要:"<<yao<<" 学:"<<xue<<" C:"<<c<<endl;}}}return 0;}
视频:http://www.tudou.com/programs/view/InJLdkTDKSQ/
- C++第11周项目2(7)参考——都要学C
- C++第11周项目2(2)参考——换分币
- C++第11周项目2(1)参考——百钱百鸡
- C++第11周项目2(3)参考——年龄几何
- C++第11周项目2(4)参考——三色球
- C++第11周项目2(5)参考——委派任务
- C++第11周项目2(6)参考——谁是小偷?
- C++第11周项目2(8)参考——软件比拼
- C++第11周项目2(9)参考——污损的数字
- C语言OJ项目参考(1915) 第几天
- 第9周项目6“都要学c”
- 第13周 《C语言及程序设计》实践参考——定期存款利息计算器
- 第14周 《C语言及程序设计》实践参考——有序数组中插入数据
- 第14周 《C语言及程序设计》实践参考——工资的排序
- 第7周项目4--星号图(c)
- 2014-C第2周项目—— 用if语句实现分支结构程序设计
- C++第1次实验(基础班)—初识C++(项目二2)
- C++第10周项目2扩展之2参考——迭代求和
- 检测流文件结束符
- VirtualBox中Windows 7虚拟机不能上网怎么办?
- xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)
- mysql常用命令
- C8051F34X IO 引脚初始化步骤
- C++第11周项目2(7)参考——都要学C
- Android 反编译,修改,重新打包,签名
- mac 10.8 montion lion 山狮系统上 安装 rails 和 oci8 连 oracle 数据库
- 安装NS2(xp+cygwin+ns2.28)
- 快速排序 有问题
- 温家宝:今后5年有3件事情重大而迫切
- Objective-C中的定时器功能
- 我的安卓学习之路--split,StringTokenizer
- 基于Hadoop平台的云存储应用实践