• POJ_1426Find The Multiple


    Find The Multiple
    Time Limit: 1000MS   Memory Limit: 10000K
    Total Submissions: 14243   Accepted: 5805   Special Judge

    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

    为0,1的整数,当且仅当10 * x, 10 * x + 1

    #include<iostream>
    #include <queue>
    using namespace std;
    int n;
    queue<long long>Q;
    long long BFS()
    {
    	while(!Q.empty())
    	{
    		Q.pop();
    	}
    	Q.push(1);
    	while(!Q.empty())
    	{
    		if(Q.front() % n == 0)
    		{
    			return Q.front();
    		}
    		long long temp = Q.front();
    		Q.pop();
    		Q.push(temp * 10);
    		Q.push(temp * 10 + 1);
    	}
    	return 0;
    }
    int main()
    {
    	while(cin>>n && n)
    	{
    		cout<<BFS()<<endl;
    	}
    	return 0;
    }


  • 相关阅读:
    为知笔记使用备注
    困惑激发的正能量
    再多坚持一会,相信自己就好!
    看博文《前路漫漫,何为终点?》的一点小感想
    前端的杂谈
    JS 客户端检测
    DOM
    JavaScript & XML
    我所认识的XPath
    Javascript 面向对象编程
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5835094.html
Copyright © 2020-2023  润新知