E Easy problem
链接:https://ac.nowcoder.com/acm/contest/338/E
来源:牛客网
Zghh likes number, but he doesn't like writing problem description. So he will just give you a problem instead of telling a long story for it.
Now given a positive integer x and k digits a1,a2,...,ak, can you find a positive integer y such that y is the multiple of x and in decimal representation y contains all digits of a1,a2,...,ak.
Now given a positive integer x and k digits a1,a2,...,ak, can you find a positive integer y such that y is the multiple of x and in decimal representation y contains all digits of a1,a2,...,ak.
输入描述:
The first line contains an integer T (1<=T<=10000) which is the number of test case.The following T lines each line is a test case, start with two integer x (1<=x<=1e8) and k (1<=k<=10), k integer a1,a2,..,ak (0<=ai<=9 for i=1..k and ai!=aj for i!=j) is following.
输出描述:
For each test case output your answer y. Your answer should be a positive integer without leading zero and should be no more than 1e18. Every answer that satisfy the conditions descripted above will be accepted.
示例1
备注:
Constraint of data
1<=T<=10000
1<=x<=1e8
1<=k<=10
0<=ai<=9,for i=1..k
ai!=aj for i!=j
your answer y should satisfy y <= 1e18
读懂题
题意• 找一个数(<=1e18),包含a1,a2,…,ak且是x的倍数。(0<=ai<=9,x<=1e8) 题解• 令N=102345678900000000 • 1) N%x==0 , ans = N • 2) N%x!=0, ans = N+(x-N%x) • 那么显然对于x<=1e8, ans包含0到9且ans是x的倍
#include <stdio.h> long long n = 123456789000000000LL; int main() { int T,k,t,r; char buf[111]; scanf("%d",&T); getchar(); while(fgets(buf,100,stdin)) { sscanf(buf,"%d",&k); r = n % k; t = k - r; printf("%lld\n",n+t); } return 0; }
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <cfloat> #include <climits> #include <iostream> #include <string> #include <vector> #include <list> #include <queue> #include <stack> #include <map> #include <set> #include <algorithm> #include <bitset> using namespace std; #define LL long long const int maxn = 20; int T; LL x, k, ans; int num[maxn]; int main() { #ifdef Dmaxiya freopen("test.txt", "r", stdin); #endif // Dmaxiya ios::sync_with_stdio(false); scanf("%d", &T); while(T--) { ans = 987654321000000000LL; scanf("%lld%lld", &x, &k); for(int i = 0; i < k; ++i) { scanf("%d", &num[i]); } printf("%lld\n", ans + (x - ans % x)); } return 0; }