博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1426 Find The Multiple(bfs)
阅读量:6117 次
发布时间:2019-06-21

本文共 937 字,大约阅读时间需要 3 分钟。

题目:http://poj.org/problem?id=1426

题意:

给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的'0'或'1'组成。

注意:

1、要求的这个数,大数肯定不能存,需要用数组存

2、这个数的最高位一定是1

3、剩下的各个位只有两种可能,要么是1,要么是0,用bfs来处理

4、停止bfs的条件是m%n==0,即可以利用上一位的余数×10%n,若等于0,则停止,否则继续。

5、最后是输出部分,利用的是同余模定理处理,把*10操作转化为%2操作,逆向输出就可以了

代码:

View Code
1 #include 
2 #include
3 using namespace std; 4 int mod[600000]; 5 int main() 6 { 7 int n; 8 int i; 9 while(scanf("%d",&n)!=EOF)10 {11 if(n==0)12 break;13 mod[1]=1%n;14 for(i=2;mod[i-1]!=0;i++)15 {16 mod[i]=(mod[i/2]*10+i%2)%n;//i%2模仿了广搜的两个入口17 }18 i--;19 int j=0;20 while(i)21 {22 mod[j]=i%2;//把*10操作转化为%2操作,逆向求倍数的每一位数字 23 i/=2;24 j++;25 }26 while(j)27 {28 cout<

 

 

 

转载于:https://www.cnblogs.com/wanglin2011/archive/2013/01/26/2878210.html

你可能感兴趣的文章
生于洞见 死于调查
查看>>
管理拯救不了企业
查看>>
IM3.0时代 移动互联网会发生什么变化
查看>>
Azure运维系列 5:国际版与中国版进行数据迁移
查看>>
SoapUI实践:自动化测试、压力测试、持续集成
查看>>
XCode各版本与Mac OS各版本对应列表
查看>>
CurrentAnalysis:MSSP对比分析
查看>>
大分区使用xfs文件系统存储备份遇到的问题
查看>>
2011年度总结:不甘寂寞的2011
查看>>
分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(3月26日-3月31日)
查看>>
PowerShell 学习笔记——运行命令
查看>>
PHP流程控制的替代语法
查看>>
【VMCloud云平台】私有云门户WAP部署前准备
查看>>
[Android学习笔记五] Android View和Widget类图
查看>>
Linux防火墙iptables中mark模块分析及编写
查看>>
Cygwin新手必读
查看>>
博客、论坛外部链接建设需要注意哪些基本要素?
查看>>
Twisted入门教程(14)
查看>>
聊聊EIGRP的自动汇总与手工汇总
查看>>
Memcached常用命令及使用说明
查看>>