洛谷链接
思路:如果某一个数可以由幸运数组成,则可以分解这个数。比如说d=7,59=7*7+10,所以59必是可以的。也就是说如果这个数可以n = i * 10+d * j,其中i,j>0。如果n>d * 10,则n也是可以的,因为都可以分解为i * 10+d * j
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-->0) {
int q = sc.nextInt();
int d = sc.nextInt();
long arr[] = new long[q];
boolean pd;
for(int i=0;i<q;i++) {
String str = (t==0)&&(i==q-1)?"":"\n";
pd = false;
arr[i] = sc.nextLong();
if(arr[i]>=d*10) {
System.out.print("YES"+str);
}else {
for(int j=0;j<=arr[i]/10;j++) {
if((arr[i]-j*10)%d==0&&arr[i]!=j*10) {
System.out.print("YES"+str);
pd = true;
break;
}
}
if(!pd)System.out.print("NO"+str);
}
}
}
}
}
总结:写题的时候要看清楚输出格式,就像这个题,一开始换行符在中间断了一次,应该判断是最后一个输出数据的时候再不换行,而不是每一组的最后一个输出关掉换行符。