【Java每日一题,dfs】Find The Multiple

简介: 【Java每日一题,dfs】Find The Multiple

Introduction

在2100年科学家发现了平行宇宙,但是新发现的Earth2的世界中所有数字都是由0和1组成的十进制数,如果从我们的世界穿越到Earth2,数字将发生一些变化,例如:一个正整数n,将被转化为n的一个非零的倍数m,这个m应当符合Earth2的数字规则。你可以假定n不大于200且m不多于100位。

提示:本题采用Special Judge,你无需输出所有符合条件的m,你只需要输出任一符合条件的m即可


Input

输入包含多组数据,每组数据仅一行,只包含一个正整数n,n==0时输入结束 (1 <= n <= 200).


Output

对于输入的每组n,都输出任一符合条件的m。即使有多个符合条件的m,你也只需要输出一个即可。

(已知long long范围内存在表示数据中所有的m


Sample

input

2
6
19
0

output

10
100100100100100100
111111111111111111

Solution

import java.util.LinkedList;
import java.util.Scanner;
public class Main {
    static int k;
    static boolean flag;
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        while (true){
             k=s.nextInt();
            if(k==0)break;
            flag=false;
            dfs(1);
        }
    }
    static void dfs(long n){
        if(String.valueOf(n).length()>19||flag){
            return;
        }
        if(n%k==0){
            flag=true;
            System.out.println(n);
            return;
        }
        dfs(n*10);
        dfs(n*10+1);
    }
}

Experience

!!!为什么用dfs。开始觉得bfs肯定是比dfs要好的,但是有的数字的结果长度达到十几位,导致queue里面的变量个数达到2的十几次方。于是内存不够。

dfs能够用时间换空间,在一定长度的数字下,肯定能找到结果的。

相关文章
【Java每日一题,dfs】矩阵查找字符串
【Java每日一题,dfs】矩阵查找字符串
|
机器学习/深度学习 Java
【Java每日一题,dfs】洛谷P1162 填涂颜色
【Java每日一题,dfs】洛谷P1162 填涂颜色
|
机器学习/深度学习 Java
【Java每日一题,深度搜索dfs】棋盘问题
【Java每日一题,深度搜索dfs】棋盘问题
|
5月前
|
存储 算法 Java
Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。
【6月更文挑战第21天】Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。二叉树遍历通过访问根、左、右子节点实现。DFS采用递归遍历图的节点,而BFS利用队列按层次访问。以下是简化的代码片段:[Java代码略]
46 4
|
5月前
|
Java
01背包介绍与N皇后(dfs,考验代码能力JAVA)
01背包介绍与N皇后(dfs,考验代码能力JAVA)
|
5月前
|
算法 Java
Java数据结构与算法:图算法之深度优先搜索(DFS)
Java数据结构与算法:图算法之深度优先搜索(DFS)
【Java每日一题,dfs】挖出最大财宝
【Java每日一题,dfs】挖出最大财宝
|
6月前
|
数据采集 算法 Java
DFS(深度搜索)无向图遍历(JAVA手把手深入解析)
DFS(深度搜索)无向图遍历(JAVA手把手深入解析)
67 0
|
机器学习/深度学习 Java
【Java每日一题,dfs】[USACO1.5]八皇后 Checker Challenge
【Java每日一题,dfs】[USACO1.5]八皇后 Checker Challenge
【Java每日一题,dfs】哈密顿绕行世界问题
【Java每日一题,dfs】哈密顿绕行世界问题