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;
}
相关文章
|
Python
通过阿里云服务器的公网IP访问django网站
在安全组设置,添加可以访问的端口 搭建django网站,可以参考官方的教程 设置网站的setting.py ALLOWED_HOSTS = ['*'] 启动网站服务 python manage.py runserver 0.
5401 0
|
Oracle Java 关系型数据库
最新Java基础系列课程--Day01-Java基础入门(一)
最新Java基础系列课程--Day01-Java基础入门
228 0
最新Java基础系列课程--Day01-Java基础入门(一)
解决方案:Missing URI template variable ‘userName‘ for method parameter of type String
解决方案:Missing URI template variable ‘userName‘ for method parameter of type String
|
人工智能 搜索推荐 API
AI尝鲜:使用dify监测金融市场情绪
本实验介绍了如何利用dify创建金融市场情绪工作流,通过输入公司名称(如英伟达),使用Tavily搜索引擎获取相关金融新闻,并借助大模型(如通义千问)进行情绪分析,输出介于-1到1之间的情绪评分。实验分为四步:安装dify、设置模型供应商、配置搜索引擎以及创建工作流。最终,用户可运行工作流,获得量化的市场情绪数据,为量化交易策略提供依据。
AI尝鲜:使用dify监测金融市场情绪
|
9月前
|
数据采集 存储 机器学习/深度学习
探索Python的力量:如何处理大数据
探索Python的力量:如何处理大数据
196 7
|
存储 机器学习/深度学习 人工智能
矢量数据库与LLM的集成:实践指南
矢量数据库与LLM的集成:实践指南
407 2
|
存储 安全 内存技术
地址映射
地址映射
683 0
|
JavaScript 前端开发 数据格式
Jquery前端分页插件pagination使用
Jquery前端分页插件pagination使用
371 1
|
编解码 测试技术 API
SDK发布报告—保障SDK的质量与稳定性
SDK发布报告的透明化,能够有效为产品方提供发布策略、为客户提供SDK升级指导,极大保障SDK的质量与稳定性。
11308 6
SDK发布报告—保障SDK的质量与稳定性
|
存储 Kubernetes Cloud Native
【云原生】k8s新版本与Docker和Containerd的关联关系
【云原生】k8s新版本与Docker和Containerd的关联关系
2128 0