猜年龄-Java

时间:2020-04-11
本文章向大家介绍猜年龄-Java,主要包括猜年龄-Java使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目内容

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

代码

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

public class Main {



public static void main(String[] args) {
/*
 * 我年龄的立方是一个4位数。我年龄的4次方是一个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请你编程算出他当时到底有多年轻。
 */
for(int i=10;i<=100;i++) {
	int age1=i*i*i;  //先筛选出第一个值年龄的立方
	int  age2=age1*i;  //年龄的四次方
	String s=age1+"";  //转为字符串处理
	String s2=age2+"";
	if(s.length()==4&&s2.length()==6&&check(s+s2)) {  //判断是否长度达到10,并且没有重复
		System.out.println(i);
		break;
	}
}
}

private static boolean check(String string) {
	// TODO Auto-generated method stub
	Set<Character> set=new HashSet<Character>(); //利用set集合完美去重,对单个字符判断应该将string转为character
	for (int i = 0; i < string.length(); i++) {
		set.add(string.charAt(i));
		if(set.size()==10) {
			break;
		}
	}
	
	return set.size()==10;
}

}

结果:18

原文地址:https://www.cnblogs.com/effortfordream/p/12679098.html