Set集合解决年龄问题:年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,
2014-04-09 15:08
281 查看
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。
代码:
package cn.itcast.setInterface;
import java.util.HashSet;
public class SetInterface {
//判断是否重复,加入到set集合中的元素不能重复
public static boolean isRepeat(String num){
HashSet<Character> set = new HashSet<Character>();
for (int i = 0; i < num.length(); i++) {
if (!set.add(num.charAt(i))) {
return false;
}
}
return true;
}
public static void main(String[] args){
int age = 1;
while(true){
String num1 = String.valueOf((int) Math.pow(age, 3));
String num2 = String.valueOf((int) Math.pow(age, 4));
if (num1.length() == 4 && num2.length() == 6) {
if(isRepeat(num1 + num2)){
System.out.println("年龄为:" + age);
System.out.println("立方为:" + num1);
System.out.println("四次方为:" + num2);
break;
}
}else{
age++;
}
}
}
}
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:
“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。
代码:
package cn.itcast.setInterface;
import java.util.HashSet;
public class SetInterface {
//判断是否重复,加入到set集合中的元素不能重复
public static boolean isRepeat(String num){
HashSet<Character> set = new HashSet<Character>();
for (int i = 0; i < num.length(); i++) {
if (!set.add(num.charAt(i))) {
return false;
}
}
return true;
}
public static void main(String[] args){
int age = 1;
while(true){
String num1 = String.valueOf((int) Math.pow(age, 3));
String num2 = String.valueOf((int) Math.pow(age, 4));
if (num1.length() == 4 && num2.length() == 6) {
if(isRepeat(num1 + num2)){
System.out.println("年龄为:" + age);
System.out.println("立方为:" + num1);
System.out.println("四次方为:" + num2);
break;
}
}else{
age++;
}
}
}
}
相关文章推荐
- HashSet只是比较是否相同;年龄的立方是4位数,4次方是6位数这10个数字正好包含了一次0到9这10个数
- 解决springMVC对象中包含Set集合的问题
- 解决Oracle字符串中包含数字、特殊符号的排序问题
- 解决“控件包含代码块,因此无法修改控件集合”问题的方法
- springMVC实体用注解管理,多对多 set集合元素排序问题 解决
- 蓝桥杯-问题 1606: 集合运算(C++set解决)
- 尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。
- 解决PHPExcel导出长数字末尾几位数为0的问题
- 解决PHP导出Excel长数字末尾几位数为0的问题
- php 操作数组array_merge使用时数组包含数字键名的问题解决方法
- ScrollView中包含ListView问题解决
- MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8
- 解决头文件相互包含问题的方法
- 一个 顺序,解决 第二天清空 数字的问题,
- 字符集 character set /Mysql 遇到的问题 解决
- SDSoc学习(四):搭建包含AXI_GPIO的平台(解决找不到基地址的问题)
- js控制四个数字加空格(银行卡)并且支持插入数字(解决光标跳动问题)
- 解决包含已存在的php文件,但提示就是找不到的问题
- 解决 PHPEXCEL 纯数字 科学计数的问题
- 快速导入EXCEL到SQL的SQL语句,此方法可以解决数字字母混合的问题