魔数

题目

 * 一个数字,把他乘以二,会得到一个新的数字,
 * 如果这个新数字依然由原数中那些数字组成,就称原数为一个魔数。
 * 输入正整数N,检查它是否是一个魔数,输出YES或者NO。
 *
 * 142857  =  285714

细节:
我们把 "初始化" 数据 放到List中,已经确定过的数,要从List里面删除。

做法:

class Test71 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int number = input.nextInt();
        int new_number = number * 2;
        boolean flag = false;
        List<Integer> list = new ArrayList(); //14285
        String s1 = String.valueOf(number);
        String s2 = String.valueOf(new_number);
        for (int i = 0; i < s1.length(); i++) {
            list.add(Integer.valueOf(String.valueOf(s1.charAt(i))));
        }
        for (int i = 0; i < s2.length(); i++) {
            Integer integer = Integer.valueOf(String.valueOf(s2.charAt(i)));
            if (list.contains(integer)){
                flag = true;
                list.remove(integer);
            }else {
                flag = false;
            }
        }

        if (flag){
            System.out.println("YES");
        }else {
            System.out.println("NO");
        }

        input.close();
    }
}

posted on 2023-06-08 22:20  陈嘻嘻-  阅读(50)  评论(0编辑  收藏  举报

导航