大数乘,果断java A了。
1 import java.util.Scanner; 2 import java.lang.StringBuilder; 3 import java.math.BigInteger; 4 5 public class Main { 6 public static void main(String[] args) { 7 Scanner cin = new Scanner(System.in); 8 while (cin.hasNextLine()) { 9 String line = cin.nextLine(); 10 int length = line.length(); 11 int[] cnt = new int[10]; 12 for (int i=0; i<length; ++i) { 13 ++cnt[line.charAt(i)-'0']; 14 } 15 boolean flag = true; 16 BigInteger org = new BigInteger(line); 17 for (int i=2; i<=length; ++i) { 18 BigInteger tmp = org.multiply(new BigInteger(String.valueOf(i))); 19 String s = tmp.toString(); 20 int[] scnt = new int[10]; 21 if (s.length() < length) 22 scnt[0] += length - s.length(); 23 for (int j=0; j<s.length(); ++j) 24 ++scnt[s.charAt(j)-'0']; 25 for (int j=0; j<10; ++j) { 26 if (scnt[j] != cnt[j]) { 27 flag = false; 28 break; 29 } 30 } 31 if (!flag) 32 break; 33 } 34 if (flag) 35 System.out.println(line+" is cyclic"); 36 else 37 System.out.println(line+" is not cyclic"); 38 } 39 } 40 }