不变初心数是指这样一种特别的数,它分别乘 2、3、4、5、6、7、8、9 时,所得乘积各位数之和却不变。例如 18 就是这样的数:18 的 2 倍是 36,3+6=9;18 的 3 倍是 54,5+4=9;…… 18 的 9 倍是 162,1+6+2=9。对于 18 而言,9 就是它的初心。本题要求你判断任一个给定的数是否有不变的初心。
输入格式:
输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一个不超过 105 的正整数。
输出格式:
对每个给定的数字,如果它有不变的初心,就在一行中输出它的初心;否则输出 NO
。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int test [] = {2,3,4,5,6,7,8,9};
int n = in.nextInt();
int [] arr = new int [n];
for(int i=0;i<n;i++)
arr[i]=in.nextInt();
for(int i=0;i<n;i++) {
int s = arr[i];
int sum = begin(s);
boolean flag = true;
for(int j=0;j<test.length;j++) {
int a = arr[i]*test[j];
int c = begin(a);
if(c!=sum)
flag = false;
}
if(flag==true) {
System.out.println(begin(arr[i]));
}else
System.out.println("NO");
}
}
public static int begin(int s) {
int sum = 0;
while(s!=0) {
sum = sum+s%10;
s=s/10;
}
return sum;
}
}