POJ--1426.Find The Multiple(DFS)

POJ--1426.Find The Multiple(DFS),第1张

Find The Multiple

Time Limit: 1000MSMemory Limit: 10000K
Total Submissions: 72588Accepted: 28677Special 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

Source

Dhaka 2002

连样本数据都没过,但提交了就是对的,就离谱。


看网上大神都是这么写的,思路是没错 

比较疑惑的是if(k==19)return;//剪枝  ,因为m最大可以到100位数,但是我们直接就取n<19位的....直接剪枝,咱也不知道为啥。


#include
#include
#include
using namespace std;
typedef long long ll;
int n;
int f;

void dfs(ll x,int k)
{
	if(f)return;
	if(k==19)return;//剪枝
	if(x%n==0)
	{
		cout<>n&&n)
	{
		f=0;
		dfs(1,0);//1开始,目前就1位数 
	}
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/585256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存