22.蓝桥杯2013第一题猜年龄

/**

  • 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
  • 一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
  • “我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
  • 请你推算一下,他当时到底有多年轻。
  • 通过浏览器,直接提交他那时的年龄数字。 注意:不要提交解答过程,或其它的说明文字。

算法思路:
因为利用HashSet的特点,Set里面的元素不重复,所以将数字一个一个从次方数中拆分出来存进set,然后判断set的大小是否为10,如果不为10,即是有重复才不存进set里,如果size为10,那么就证明了每个数字都不一样


import java.util.HashSet;


public class B1 {

    public static void main(String[] args) {

        for (int i = 11; i < 30; i++) {
            int four = (int) Math.pow(i, 3);
            int six = (int) Math.pow(i, 4);
            HashSet set = new HashSet();
            while (four != 0) { // 4013
                int temp = four % 10;
                set.add(temp);
                four /= 10;
            }
            while (six != 0) {
                int temp2 = six % 10;
                set.add(temp2);
                six /= 10;
            }
            if (set.size() == 10)
                System.out.println(i);
        }
    }

}

你可能感兴趣的:(22.蓝桥杯2013第一题猜年龄)