题意:
求一个≤10^16的数,使这个数包含123456789且为x的倍数。x≤1000000。
题解:
16-6刚好等于10。因此我们可以直接让所求的数的前10位为1234567890,则只要求出1234567890000000加上什么≤1000000的数可以为x的倍数即可,而这个可以很容易求出。
代码:
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define inc(i,j,k) for(int i=j;i<=k;i++) 5 using namespace std; 6 7 const long long a=1LL*1234567890*1000000; 8 int t; long long b; 9 int main(){ 10 scanf("%d",&t); inc(i,1,t){scanf("%lld",&b); if(b)printf("%lld\n",a+b-a%b);else puts("-1");} return 0; 11 }
20160905