import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); int t=scanner.nextInt(); O1:while(t-->0) { String string=scanner.next(); //实际上只能操作2 和 3,将2变为4增加2,将3变为9增加6,要想让最终的数能被9整除,其实就是要让最终的数各位之和能被9整除 int sum=0; int count2=0; int count3=0; for (int i = 0; i < string.length(); i++) { char c=string.charAt(i); sum+=c-'0'; if(c=='2')count2++; if(c=='3')count3++; } if(sum%9==0) { System.out.println("YES"); }else { int d1=2; int d2=6; int d=sum%9; if(count2!=0&&count3!=0) { for (int i = 0; i <= Math.min(count3, 3); i++) { for (int j = 0; j <= Math.min(count2, 9); j++) { if((d2*i+d1*j+d%9)%9==0) { System.out.println("YES"); continue O1; } } } }else if(count2==0&&count3!=0) { for (int i = 0; i <= Math.min(count3, 3); i++) { if((d2*i+d%9)%9==0) { System.out.println("YES"); continue O1; } } }else if(count2!=0&&count3==0) { for (int j = 0; j <= Math.min(count2, 9); j++) { if((d1*j+d%9)%9==0) { System.out.println("YES"); continue O1; } } } System.out.println("NO"); } } } }
这一题也是规律题,就像我注释里面写的,要想让最终数字能够整除9,那么每一位数字之和就得能够整除9。而我们只能操作2和3,2变成4,会增加2,3变成9,会增加6,也就是我们要让增加的数加上之前模9的余数,使其能够整除9。