C++第11周项目2(7)参考——都要学C
2023-09-11 14:15:56 时间
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
【项目2:穷举法解决组合问题】先阅读例题,领会穷举法(意为“穷尽式列举”,也称枚举)的思想,然后自行选题进行解决,掌握这种程序设计的一般方法。
任务:利用穷举的方法解决下面的问题(选做一道即算完成任务,其他可以抽时间自由安排,多做会使你更聪明。)
(7)在下面的加法算式中,不同的符号代表不同的数字,相同的符号代表相同的数字。请设计程序求出"都、要、学、C"4个符号分别代表的数字。
要 学 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 dou++) for(yao=0;yao yao++) for(xue=0;xue xue++) for(c=0;c 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 dou++) for(yao=0;yao yao++) if(dou==yao) continue;//“都”和“要”的取值如果相同了,将不再考虑另外两字的取值,效果可观 for(xue=0;xue xue++) if(xue==yao||xue==dou) continue; //理由同上 for(c=0;c 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/
(下面是填好空的程序) (1)下面程序的功能是统计文本文件abc.txt中的字符个数,请填空将程序补充完整。
【项目2:洗牌】 在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,称为洗牌。试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,顺序输出54张牌的情况。 参考界面: 参考解答(共4种,可作为程序阅读,品味用STL解决问题的方法,必要时,请查找相关手册) 解法1:初始化一个 vector,顺序加入所有牌,即整数1~54。然后从容器中随机
【项目-数组类模板】 在数组类的基础上,将之改造为类模板,以使数组中可以存储各种类型的数据。 template class T //数组类模板定义 class Array private: T* list; //用于存放动态分配的数组内存首地址 int size; //数组大小(元素个数)
是一个函数模板的两个实例,其功能是将数组a中的前size个元素按从小到大顺序排列。试设计这个函数模板。 参考解答:
【项目1-分数类中的运算符重载】 (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。
【项目-数组类运算的实现】 设计数组类Array,为了实现测试函数中要求的功能,请补足相关的函数(构造、析构函数)和运算符重载的函数。 实现策略提示:可以将测试函数中的语句加上注释,取消一句的注释,增加相应的函数,以渐增地实现所有的功能,避免全盘考虑带来的困难。
【项目 - 点-圆-圆柱类族的设计】 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(
贺利坚 烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
相关文章
- 【C/C++学院】0907-象棋五子棋代码分析/寻找算法以及排序算法
- 【华为云实战开发】10.经典的C++项目怎么在云端开发?
- C/C++基础讲解(九十三)之游戏篇(五子棋游戏)
- VS中c++文件调用c 函数 ,fatal error C1853 预编译头文件来自编译器的早期版本号,或者预编译头为 C++ 而在 C 中使用它(或相反)
- [h5棋牌项目]-17-C++读取json文件
- [h5棋牌项目]-14-C++ string 转化为LPCTSTR
- win10 C++调用conda的python
- C++学习心得与c语言到c++衔接技巧
- 解答私信@被c++折磨头秃的花季美少女 //C++ 利用指针数组输入10个单词,编写函数对10个单词进行排序并输出,要求判断是否有相同的单词,如果有相同的单词在输出时该单词只输出一次。
- Xcode如何创建C++项目
- C/C++ 计算程序运行时间的代码
- 2013级C++第15周(春)项目——输入输出流及文件文件操作
- C++学习笔记36 (模板的细节明确template specialization)和显式实例(template instantiation)
- AI模型C++部署:ubuntu安装Cython并使用C/C++调用python动态库【附加c++与python互相调用算法demo程序接口的源码】
- C++ 函数重载有啥用?
- C/C++开发工具大比拼【转】
- C++解决win7下文件拖拽无效的问题
- 【PAT 1143】 Lowest Common Ancestor 【C++版】
- C++ - opencv应用实例之矩形框检测