POJ 1426 Find The Multiple

来源:互联网 发布:汉高薪资待遇 知乎 编辑:程序博客网 时间:2024/06/11 08:57

因为是special judge, 找出一组解即可。用DFS, 记得及时退出。同时unsigned long long足够表示最后的答案, 不需要使用高精度。

#include <iostream>#include <cstdio>using namespace std;int flag, n;int dfs(unsigned long long a, int step){if (flag == 1 || step == 19)return 0;else if (a % n == 0){printf("%lld\n", a);flag = 1;return 1;}else{if (!dfs(a * 10, step + 1)){dfs(a * 10 + 1, step + 1);}}}int main(){while (scanf("%d", &n), n){flag = 0;dfs(1, 0);}}


0 0