小明发现了一个奇妙的数字。它的平方和立方正好把 0 ~ 9 的 10 个数字每个用且只用了一次。你能猜出这个数字是多少吗?
代码:
import java.util.HashSet; import java.util.Set; public class 第七题 { public static void main(String[] args) { int i=1; while (true){ HashSet<Object> set = new HashSet<>(); int ping=i*i; int li=i*i*i; String str=""+ping+li; if(str.length()==10){ char[] ss = str.toCharArray(); for (int k=0;k<ss.length;k++){ set.add(ss[k]); } if (set.size()==10) { System.out.println(i); break; } } i++; } } }
实验结果:
思路:先把平方和立方的数字组成字符串,值得注意的是String str=""+ping+li;是把两个数字直接拼接成字符串,String str=ping+li+"";是先把这个数字相加,然后拼接成字符串,是有一定的区别,然后先看看字符串是不是长度为10,最后转化为字符数组,放到hashset里面,如果长度为10,则找到了目标数字。