#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int i, j, k, t;
scanf("%d", &t);
while(t--)
{
int a, b;
scanf("%d%d", &a, &b);
if(a == 1)
{
if(b >= 10)
printf("Impossible!\n");
else
{
for(i = 9; i >= 1; --i)
{
if(i % b == 0)
{
printf("%d\n", i);
break;
}
}
}
}
else
{
if(b == 1 || b == 9 || b == 3)
k = 9;
else if(b == 2)
k = 8;
else if(b == 5)
k = 5;
else if(b == 6)
k = 6;
else
k = 0;
for(i = 1; i < a; ++i)
printf("9");
printf("%d\n",k);
}
}
return 0;
}
//1 2 3 5 6 9 10 15 18 30 45 90
题意:给出Construct a number N follows three below restrictions:
1. T-1 <= Log10N < T, ( 0 < T <= 100 )
2. 90 mod b = 0
3. N mod b = 0
三个约束条件,求N。
思路:首先从2了可以看出b只有上面我注释的几个数可选,其次就是N的范围是10^T~10^T-1 ,因为b可以被90整除,所以对于最大的N必定是10^T - 10 ~ 10^T,对于不同的b,N的值略微有点不同,其次就是不存在的情况就是当T = 1的时候,如果b>=10, 那么很明显N不存在。