zoukankan      html  css  js  c++  java
  • 暑期第一弹<搜索> E

    E - Find The Multiple
    Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u
    Submit Status

    Description

    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

    题意:给出一个数n,然后求得一个数字k,数字满足:能被n整除,每一位只有0,1。这样的数字k会有很多个,然以输出一个就可以。

    思路:n的最大值为200,用dfs从数字k的个位开始往高位搜索,每一位只有0或1。找到能被n整除的时候输出就可以了。

    ps:(一开始不知道到底应该搜到多少位时可以return,后来看到网上说最多到19位就可以)

    代码如下:

     

    #include <iostream>
    using namespace std;
    
    int n,flag;
    void dfs(int k,long long cur){      //k:位数 cur:当前数字
        if(k == 19 || flag) return ;
    
        if(cur%n == 0){
            cout<<cur<<endl;
            flag = 1;
            return ;
        }
        dfs(k+1,cur*10);        //高位为 0
        dfs(k+1,cur*10+1);      //高位为 1
    }
    int main()
    {
        while(cin>>n,n != 0){
            flag = 0;
            dfs(0,1);       
        }
        return 0;
    }
    


     

  • 相关阅读:
    网络协议分析-ICMP协议分析
    网络协议分析-IP协议分析
    网络协议分析-ARP协议分析
    网络协议分析-Ethernet
    Centos7 _dns服务器搭建及配置
    centos7_vsftpd-ssl/tls搭建及ftp加固
    HTTP请求的六种方式
    Winserver03-Web SSL服务搭建
    webstorage和cookie的区别
    sessionstorage和localstorage的区别
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6351939.html
Copyright © 2011-2022 走看看