7.1.1简单枚举

除法

输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79.

样例输入:

62

样例输出:

79546/01238=62

94736/01528=62

程序代码:

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. int isright(int,int);
  4. int main()
  5. {
  6. int n,i;
  7. while(cin>>n){
  8. for(i=1234;i*n<=98765;i++)
  9. if(i<=9876&&i*n>=12345&&isright(i,i*n))
  10. cout<<i*n<<"/0"<<i<<"="<<n<<endl;
  11. if(i>=10234&&i*n>=56789&&isright(i,i*n))
  12. cout<<i*n<<"/"<<i<<"="<<n<<endl;
  13. }
  14. return 0;
  15. }
  16. int isright(int x,int y){//判断xy是否是由不同的0~9九个数组成的
  17. int a[10]={0};
  18. for(int i=0;i<5;i++){
  19. a[x%10]++;
  20. x=x/10;
  21. }
  22. for(int i=0;i<5;i++){
  23. a[y%10]++;
  24. y=y/10;
  25. }
  26. for(int i=0;i<10;i++){
  27. if(a[i]!=1) return 0;
  28. }
  29. return 1;
  30. }

7.1.2最大乘积

输入n个元素组成的序列s,你需要找出一个乘积最大的连续子序列。如果这个最大的成绩不是正数,应输入-1(表示无解)。输入0结束输入。1<=n<=18,-10<=Si<=10。

样例输入:

3

2 4 -3

样例输出:

8

20

[cpp] view plaincopy
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4. int main(){
  5. int n,m;
  6. vector<int> ivec;
  7. while(cin>>n){
  8. if(n==0) break;
  9. for(int i=0;i<n;i++){
  10. cin>>m;
  11. ivec.push_back(m);
  12. }
  13. long long max=-1;
  14. long long tem=1;
  15. for(vector<int>::iterator iter1=ivec.begin();iter1<ivec.end();iter1++)
  16. for(vector<int>::iterator iter2=ivec.begin();iter2<ivec.end();iter2++){
  17. for(vector<int>::iterator iter=iter1;iter<=iter2;iter++){
  18. tem=tem*(*iter);
  19. if(tem>max)
  20. max=tem;
  21. }
  22. tem=1;
  23. }
  24. cout<<max<<endl;
  25. ivec.clear();
  26. }
  27. return 0;
  28. }

7.1.3分数拆分

输入正整数k,找到所有正整数x>=y,使得1/k=1/x + 1/y。

样例输入:

2

样例输出:

1/2=1/6 + 1/3

1/2=1/4 + 1/4

程序代码:

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int k;
  6. while(cin>>k){
  7. for(int y=1;y<=2*k;y++){
  8. float x=(float)k*y/(y-k);
  9. int tem=x;
  10. if(x==tem&&x>0)
  11. cout<<"1/"<<k<<"=1/"<<x<<"+1/"<<y<<endl;
  12. }
  13. }
  14. return 0;
  15. }

7.1.4双基回文数

如果一个正整数最小n至少在两个不同的进制位b1和b2下都是回文数(2<=b1,b2<=10),则称n是双基回文数(注意,回文数不能包含前导零)。输入正整数S<10^9,输出比S大的最小双基回文数。

样例输入:

1600000

样例输出:

1632995

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. int isright(int);
  4. int main()
  5. {
  6. int n;
  7. cout<<"请输入一个正整数,将输出一个大于他的最小双基回文数\n";
  8. while(cin>>n){
  9. for(int i=n;;i++){
  10. if(isright(i)){
  11. cout<<i<<endl;
  12. break;
  13. }
  14. }
  15. }
  16. return 0;
  17. }
  18. int isright(int a){
  19. int f=0;//统计各个进制是回文数的个数
  20. for(int num=2;num<=10;num++){
  21. char str[9];
  22. itoa(a,str,num);
  23. int cont=strlen(str);
  24. for(int i=0;i<=cont/2;i++){
  25. if(str[i]!=str[cont-i-1]) {
  26. f--;
  27. break;
  28. }
  29. }
  30. f++;
  31. }
  32. if(f>=2)
  33. return 1;
  34. else
  35. return 0;
  36. }

算法竞赛入门经典读书笔记(二)7.1简单枚举相关推荐

  1. 算法竞赛入门经典读书笔记(四)7.3子集生成

    输入一个数n,输出集合0,1,2,3,n-1的全部子集 方法一:增量构造法: #include <iostream> using namespace std; void print_sub ...

  2. 算法竞赛入门经典读书笔记(三)7.2枚举排列

    7.2.1生成1~n的所有排列 递归调用的方法可以实现. [cpp] view plaincopy #include <iostream> using namespace std; voi ...

  3. [读书笔记]《算法竞赛入门经典》第1章

    书名:算法竞赛-入门经典 第2版 作者:刘汝佳 类别:读书笔记 文章目录 前言 第1章 程序设计入门 1.1 算术表达式 1.2 变量及其输入 1.3 顺序结构程序设计(Sequential Prog ...

  4. 【算法竞赛入门经典】读书笔记

    前言 寒假期间准备一下练一下OJ,对于我这个小菜鸟来说,打稳基础很是关键.听说过[算法竞赛入门经典]的大名,加上自己学习的是 C++ ,而这本书用的是 C ,多学一门语言也是不错的.因此决定每天最少看 ...

  5. 蓝桥杯备考——算法竞赛入门经典(第2版)学习笔记2

    算法竞赛入门经典(第2版)学习笔记2 第二章 循环结构程序设计 2.1 for循环 2.2 while 循环和do-while 循环 2.3 循环的代价 2.4 算法竞赛中的输入输出框架 2.5 注解 ...

  6. 算法竞赛入门经典(刘汝佳)——代码笔记

    Reference: <算法竞赛入门经典>(刘汝佳)第一版.第二版 ------------------------------------------------------------ ...

  7. 刘汝佳《算法竞赛入门经典(第二版)》习题(二)

    刘汝佳<算法竞赛入门经典(第二版)>第二章习题 目录 刘汝佳<算法竞赛入门经典(第二版)>第二章习题 习题2-1 水仙花数 习题2-2 韩信点兵 习题2-3 倒三角形 习题2- ...

  8. 多阶段决策问题——DAG(算法竞赛入门经典笔记)

    多阶段决策问题--DAG 本文为算法竞赛入门经典第九章第三节的笔记(刘汝佳. 算法竞赛入门经典.第2版[M]. 清华大学出版社, 2014.) 多阶段决策问题:每作一次决策就可以得到解的一部分,当所有 ...

  9. 《算法竞赛入门经典训练指南》pdf

    下载地址:网盘下载 基本介绍 编辑 内容简介 <算法竞赛入门经典:训练指南>题目多选自近年来ACM/ICPC区域赛和总决赛真题,内容全面,信息量大,覆盖了常见算法竞赛中的大多数细分知识点. ...

最新文章

  1. FPGA之道(71)提高设计的综合性能(三)提高设计的重用性与易改性
  2. 成功解决object_detection/protos/*.proto: No such file or directory
  3. JZOJ 5406. 【NOIP2017提高A组模拟10.10】Tree
  4. sketch软件_因远程协作大火的Figma,到底有多好用,会取代Sketch的地位吗?
  5. 开发指南专题一: JEECG微云快速开发平台前言
  6. JS基础02之流程控制语句
  7. SQL里变量的声明以及常用函数举例
  8. MySQL 存储过程参数IN OUT INOUT区别
  9. 一阶惯性环节如何实现跟踪性能与滤波性能共存(二)
  10. 微积分导论--Continuity
  11. 做程序界中的死神,锻造合适的斩魂刀
  12. 【c++入门(2)】邻项交换
  13. Java中的boolean类型
  14. 后端程序员必备的 Linux 基础知识
  15. 计算机静态图像可分为 两类,多媒体技术.doc
  16. 400w人在抖音学驾照科目一,给我看哭了……用Python这不一下整活了吗
  17. php链接文字变色,设置HTML中超链接文字颜色方法大全
  18. 浅谈导弹如何间接解决社会问题
  19. 是时候停止说“软件架构”了 It’s Time to Stop Saying “Software Architecture”
  20. 贾志刚OpenCV3.3深度神经网络DNN模块应用学习笔记

热门文章

  1. Java面试题之类的静态代码块和静态属性等的加载顺序
  2. mysql 触发器介绍
  3. mysql:视图,触发器,事务,存储过程,函数
  4. struts2官方 中文教程 系列一:创建一个struts2 web Application
  5. asp.net MVC 路由机制 Route
  6. (笔试题)小米Git
  7. Core Text 入门
  8. the more wites of color
  9. C#调用WebService实例和开发
  10. 和 Gmail 先生面对面