POJ

来源:互联网 发布:好看的武侠小说知乎 编辑:程序博客网 时间:2024/06/01 09:39

题目大意:给出一个数字 n,找到一个非零的,由 0、1 组成的十进制数字,且是 n 的倍数,输出这个数。
解题思路:暴力,第一位一定是 1,第二位开始可以 1 或 0,一位一位枚举下去肯定会找到的……

#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(a):(b))const int INF = 0x3f3f3f3f;const int NINF = -INF -1;const int MAXN = 10000+10;using namespace std;int n, flag;long long ans;void dfs(long long i, int cnt) {    if (flag || cnt == 19) return;    if (i % n == 0) {        ans = i;        flag = 1;        return;    }    dfs(i*10, cnt+1);    dfs(i*10+1, cnt+1);}int main() {    while (scanf("%d", &n) && n) {        dfs(1, 0);        flag = 0;        printf("%lld\n", ans);    }    return 0;}
原创粉丝点击