22.蓝桥杯2013第一题猜年龄
2018-03-31 本文已影响0人
FiveZM
/**
- 美国数学家维纳(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<Integer> set = new HashSet<Integer>();
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);
}
}
}