Find The Multiple
| Time Limit: 1000MS | Memory Limit: 10000K | |||
| Total Submissions: 42225 | Accepted: 17735 | Special Judge | ||
Description
Input
Output
Sample Input
2 6 19 0
Sample Output
10 100100100100100100 111111111111111111
Source
—– 这道题让找 n 的 01 十进制倍数, 也就是说,找出一个01序列,它是 n 的倍数 第一位只能是1 所以就从 1 开始DFS 下一位只能是0或者1 所以说复杂度是 O(2n) O ( 2 n ) 的级别,有点儿不敢写,但是后来发现这个最大也就是 218 2 18 ,能过得 —#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n,k,flag;
void dfs(ll t,ll i)
{
if(i==19) return ;
if(flag) return ;
if(t%n==0)
{
flag=1;
printf("%lld\n",t);
return ;
}
dfs(t*10,i+1);
dfs(t*10+1,i+1);
}
int main()
{
while(~scanf("%lld",&n)&&n)
{
flag=0;
dfs(1,0);
}
return 0;
}
2万+



被折叠的 条评论
为什么被折叠?



