POJ1426 Find The Multiple

Posted asumi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ1426 Find The Multiple相关的知识,希望对你有一定的参考价值。

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

 

题意:给定一个正整数n,找一个比n大且能只由01构成的且能够被n整除的数。

 

题解:这个就是在后面添0和添1小心试探。一定要是添0不成功再去添1。

 

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define ll long long 
 5 
 6 int flag;  
 7 int n;  
 8 
 9 int dfs(ll s,int step){  
10     if(flag == 1 || step == 19)  
11         return 0;  
12     else if( s % n == 0){  
13         printf("%lld
",s);  
14         flag = 1;  
15         return 1;  
16     }  
17     else{  
18         if( !dfs( s*10 , step+1 ))  
19             dfs(s*10 + 1, step+1);  
20     }  
21 }  
22 int main(){  
23     while(scanf("%d",&n)!= EOF && n){
24         flag = 0;
25         dfs(1,0);
26     }
27 
28     return 0;  
29 }   

 

以上是关于POJ1426 Find The Multiple的主要内容,如果未能解决你的问题,请参考以下文章

POJ - 1426 Find The Multiple

广搜+打表 POJ 1426 Find The Multiple

搜索POJ1426:Find The Multiple

POJ 1426 - Find The Multiple - [DP][BFS]

POJ1426Find The Multiple[BFS]

poj1426 Find The Multiple (DFS)