枚举(3)
来源:互联网 发布:ubuntu安装步骤 编辑:程序博客网 时间:2024/06/18 03:45
3.现有一密码箱,由五位数构成,格式如下:
要求如下:
(1)百位数上为1;
(2)能同时被81和91整除;
方法一:传统方法比较麻烦
#include <iostream>using namespace std;int main(){int i,j,m,n;for(i=0;i<10;i++)for(j=0;j<10;j++)for(m=0;m<10;m++)for(n=0;n<10;n++){ if((i+10*j+100+m*1000+n*10000)%(81*91)==0) cout<<(i+10*j+100+m*1000+n*10000)<<endl;}return 0;}
方法二:直接判断
#include <iostream>using namespace std;int main(){int i,j;for(i=10100;i<99199;i++) {j=i/100;if(j%10==1&&i%(81*91)==0)cout<<i<<endl;}return 0;}
方法三:先求两个数的最小公倍数——>判断是否大于10100------>是否百位为1
#include <iostream>using namespace std;int main(){int m,n,r,k,j,i,x,p,q,f;m=81,n=91,p=m,q=n;r=m%n;while (r){m=n; n=r; r=m%n;}//n为最大公约数j=(p*q/n);//j为最小公倍数i=99199/j;x=f=j;for(r=2;r<=i;r++){if(f<10100)f=x*r; if(10100<f<99199)k=f/100;if(k%10==1)cout<<f<<endl;}return 0;}
总结:
这三种方法中第二种方法时间复杂度最小,最简单
- 枚举(3)
- 搜索(枚举)3
- 枚举3
- 枚举(+-)
- iOS枚举(位移枚举)
- java高新技术【3】(枚举总结)
- java高新技术【3】(枚举总结)
- 寒假项目3-应用枚举(示例)
- 寒假项目3-应用枚举(设计)
- 72 Java 枚举类(3)枚举类的Field、方法和构造器
- 19---java中枚举02(枚举)
- 字符串转枚举(两个枚举类型)
- <3> go 枚举
- java 枚举杂记3
- 枚举进程(汇编)
- C#枚举(Enums)
- C#枚举(Enums)
- 【枚举】中位数(median)
- 域和生命期之总结(第8章)
- hdu 1028
- c语言,strchr(),查找字符串中第一次字符出现的位置
- 趣解java设计模式之代理模式
- cocos2d-x与ios内存管理分析
- 枚举(3)
- MySQL优化查询的方法
- ASN.1探索 - 2 基础知识(3)
- linux下安装mysql以及php的mysql扩展
- WINCE6.0中的“hello world”,7月15日
- 优化问题
- 11
- 后缀数组的例题应用
- 分数短语作主语,谓语的形式