Set接口与应用 推算年龄


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

源码GuessAge.java


import java.util.Arrays;
import java.util.HashSet;

public class GuessAge {
    public static void main(String[] args) {
        int k = 11;
        for(;k<99;) {
            HashSet<String> s = new HashSet<String>();
            String a = (int) Math.pow(k, 3) + "";
            String b = (int) Math.pow(k, 4) + "";
            if (a.length()!=4 || b.length()!=6) {
                k++;
                continue;
            }
            s.addAll(Arrays.asList((a+b).split("")));
            if (s.size()!=10) {
                k++;
                continue;
            }
            else {
                break;
            }
        }
        System.out.println("Age: "+k);      
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注