My Personal Time

Desire is the starting point of all achievement

0%

nowcoder-数位重排

题目来源:

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;
}
}