Find The Multiple(dfs和bfs都可)

简介: Find The Multiple(dfs和bfs都可)

Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.


Input


The input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.


Output


For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable.


Sample Input

2

6

19

0


Sample Output

10

100100100100100100

111111111111111111

我们分析一下就是建立K*10+1和k*10中必定是由0和1组成的,这样我们按照这个模板套。


具体操作看代码


dfs的ac代码;

 

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
long n;
int a[200];
int flag;
void dfs(int c,long long k){
    if(flag||c>=19)return;//控制位数的作用,不要无限搜 
    if(k%n==0){//出现就退出循环 
        printf("%lld\n",k);
        flag=1;
        return;
    }
    dfs(c+1,k*10);//偶数 
    dfs(c+1,k*10+1);//奇数 
}
int main()
{
    while(scanf("%ld",&n)!=EOF){
        if(n==0) break;
        flag=0;
        dfs(0,1);
    }
}


bfs的ac代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
int n;
 struct ss
{
  long long a;
};
ss f[10000005],res;
 void bfs()
{
  int l=0,r=1;
  f[1].a=1; 
  while (l<r)
  {
    l++;
    if (f[l].a%n==0)
    {
      cout<<f[l].a<<endl;
      return;
    }
    r++;
    f[r].a=f[l].a*10+1;
    r++;
    f[r].a=f[l].a*10;
  }
}
 int main()
{
  while (scanf("%d",&n)!=EOF)
  {
    if (!n) break;
    bfs();
  }
  return 0;
}
相关文章
|
Go
LeetCode 124. Binary Tree Maximum Path Sum
给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。
52 0
LeetCode 124. Binary Tree Maximum Path Sum
codeforces1244——D.Paint the Tree(dfs)
codeforces1244——D.Paint the Tree(dfs)
59 0
|
人工智能 BI
CF1169C. Increasing by Modulo(二分)
CF1169C. Increasing by Modulo(二分)
91 0
AtCoder--755——dfs
题目描述 You are given an integer N. Among the integers between 1 and N (inclusive), how many Shichi-Go-San numbers (literally “Seven-Five-Three numbers”) are there? Here, a Shichi-Go-San number is a positive integer that satisfies the following condition:
83 0
|
并行计算
Find a way(两个BFS)
Problem Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally.
1088 0
|
人工智能
poj2356:Find a multiple
题目链接: 【鸽巢原理+乱搞】 其实用不着开$map$ 一步最巧妙的转化是$……$前缀和。 反正本宝宝突发奇想就出来了。 首先,我们分类讨论。 1.当$∃i \in N_{+} $ 且 $i \in [1,n]$ 使 $a_{i} | n$ 则直接选这个数就好 2.没有以上那种特殊情况的话,我们记录前缀和$sum_{i}= \sum _{k=1}^{i} a_{k} (mod \ \ n)$ 然后又有两种情况。
1150 0
C-POJ-1426 Find The Multiple
Description Given a positive integer n, write a program to find out a nonzero multiple m o...
947 0
[LeetCode]--389. Find the Difference
Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find the letter th
1194 0
[LeetCode]--299. Bulls and Cows
You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide
1122 0

热门文章

最新文章