找到符合条件的整数
来源:互联网 发布:无间道是什么意思知乎 编辑:程序博客网 时间:2024/05/19 16:05
问题:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0.
解法一.一般正向思维
解法二.逆向思维:已知结果求条件
代码实现如下:
// 初始化 for(i = 0; i < N; i++) BigInt[i].clear(); BigInt[1].push_back(0); int NoUpdate = 0; for(i=1,j=10%N; ; i++,j=(j*10)%N) { bool flag = false; if(BigInt[j].size() == 0) { flag = true; // BigInt[j] = 10^i, (10^i % N = j) BigInt[j].clear(); BigInt[j].push_back(i); } for(k = 1; k < N; k++) { if((BigInt[k].size() > 0) && (i > BigInt[k][BigInt[k].size() - 1]) && (BigInt[(k + j) % N].size() == 0)) { // BigInt[(k + j) % N] = 10^i + BigInt[k] flag = true; BigInt[(k + j) % N] = BigInt[k]; BigInt[(k + j) % N].push_back(i); } } if(flag == false) NoUpdate++; else NoUpdate=0; // 如果经过一个循环节都没能对BigInt进行更新,就是无解,跳出。 // 或者BigInt[0] != NULL,已经找到解,也跳出。 if(NoUpdate == N || BigInt[0].size() > 0) break; } if(BigInt[0].size() == 0) { // M not exist } else { // Find N * M = BigInt[0] }
0 0
- 找到符合条件的整数
- 找到符合条件的整数
- 编程之美-找到符合条件的整数
- 找符合条件的整数
- 找符合条件的整数
- 找符合条件的整数
- 找符合条件的整数
- 寻找符合条件的整数
- 找符合条件的整数
- 找符合条件的整数
- 找符合条件的整数
- 编程之美:第二章 数字之魅 2.8找到符合条件的整数
- 试题答案_找符合条件的整数
- 求符合给定条件的整数集
- 求符合给定条件的整数集
- 求给定符合条件的整数集
- 求符合给定条件的整数集
- 在序列中找到符合某个条件的子序列
- 201412-1 试题名称:门禁系统(100分)ccf认证
- mysql查询语句
- JAVA输入输出流
- Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
- 在java中用dom4j解析xml
- 找到符合条件的整数
- 算法4.贪心算法的调度问题。
- HTML基础知识(二)
- Mysql-linux环境下安装
- 分享asp.net 网站部署一段时候后无法响应经验
- 201409-1 试题名称:相邻数对(100分)ccf认证
- viewPager+fragment的简洁搭配
- PHP面向对象开发基础与实例
- 博弈