蓝桥杯 奇妙的数字(java题解)

来源:互联网 发布:mac win10键盘失灵 编辑:程序博客网 时间:2024/04/30 23:40

题目:奇妙的数字

小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?

请填写该数字,不要填写任何多余的内容。

代码:

import java.util.*;public class Main {    public static void main(String[] args) {        ArrayList<Integer> a = new ArrayList<Integer>();        for(int i=0;i<10;i++) {            a.add(i);        }        for(int i=10;i<100;i++) {            int p = i * i;            int l = i * i * i;            ArrayList<Integer> b = new ArrayList<Integer>(a);            int t = 0;            while(p > 10) {                int k = p % 10;                int set = b.indexOf(k);                if(set == -1) {                    t = 1;                    break;                }                b.remove(set);                p = (p-k) / 10;                if(p < 10) {                    int set2 = b.indexOf(p);                    if(set2 != -1) {                        b.remove(set2);                    }                }            }            if(t == 1) {                continue;            }            while(l > 10) {                int k = l % 10;                int set = b.indexOf(k);                if(set == -1) {                    break;                }                b.remove(set);                l = (l-k) / 10;                if(l < 10) {                    int set2 = b.indexOf(l);                    if(set2 != -1) {                        b.remove(set2);                     }                    if(b.size()==0) {                        System.out.println(i);                    }                }            }        }    }}
0 0