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