bzoj2296【POJ Challenge】随机种子*

bzoj2296【POJ Challenge】随机种子

题意:

求一个≤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

posted @ 2016-09-11 14:53  YuanZiming  阅读(167)  评论(0编辑  收藏  举报