题目来源:
https://www.nowcoder.com/practice/f970201e9f7e4040ab25a40918e27d15?tpId=90&tqId=30847&tPage=4&rp=4&ru=/ta/2018test&qru=/ta/2018test/question-ranking
题目描述:
牛牛有一个正整数x,牛牛需要把数字x中的数位进行重排得到一个新数(不同于x的数),牛牛想知道这个新数是否可能是原x的倍数。请你来帮他解决这个问题。
思路:
题目要求将x中的数位重排得到的新数是否可能是原x的倍数;只需判断x的2到9的倍数中是否存在由x重排后得到的数。
参考代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| public class Now_71{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); boolean[] booleans = new boolean[n]; for(int i=0;i<n;i++){ booleans[i] = isCheck(sc.nextInt()); } for(int i=0;i<n;i++){ if(booleans[i]){ System.out.println("Possible"); } else { System.out.println("Impossible"); } } }
private static boolean isCheck(int num) { for(int i=2;i<=9;i++){ String s1 = String.valueOf(num*i); String s2 = String.valueOf(num); char[] c1 = s1.toCharArray(); char[] c2 = s2.toCharArray(); if(c1.length != c2.length) continue; Arrays.sort(c1); Arrays.sort(c2); String s3 = String.valueOf(c1); String s4 = String.valueOf(c2); if(s3.equals(s4)){ return true; } } return false; } }
|