标题: 猜年龄
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。
通过浏览器,直接提交他那时的年龄数字。
注意:不要提交解答过程,或其它的说明文字。
分析思路:
暴力判断年龄的最小范围:
其实10到22不是最小还可以排除:
x>10;
x<22;
将X的三次方转换为字符串:
xxx>1000; string A;
将X的四次方也转换为一个字符串:
xxx*x>100000; String B;
string C=A+B;
并排序
最后判断
Arrays.sort©;c=0123456789;
import java.util.Arrays;
public class 猜年龄 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x;
String A;
String B;
String C;
for(int i=10;i<22;i++) {
x=i;
A=""+x*x*x;
char [] a=A.toCharArray();
B=""+x*x*x*x;
char [] b=B.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
String D=String.valueOf(a);
String E=String.valueOf(b);
C=D+E;
char [] c=C.toCharArray();
Arrays.sort(c);
String F=String.valueOf(c);
if(F.equals("0123456789")) {
System.out.println(x);
break;
}
}
}
}