完美平方数
如果一个整数本身是完全平方数,它的每一位组成数字也是完全平方数,我们就称它是完美平方数。
前几个完美平方数是 0、1、4、9、49、100、144……
即第 1 个完美平方数是 0,第 2 个是 1,第 3 个是 4,……
题目
那么,第 2020 个完美平方数是多少?
解法
1. 正向解法
我们观察到,完美平方数是0及正整数,且每一位为0,1,4,9中的一个,所以可以组合拼接这四个数,然后验证拼接的数字是否能被开平方为整数。
下面上代码:
@Test
public void perfectSquareNumber() {
// 完美平方数 [解法一:使用0,1,4,9拼接组合字符,计算时间超长]
int count = 1; // 完美平方数计数
String[] eleArray = {
"0", "1", "4", "9"}; // 元素组
List<Integer> current = new ArrayList<>();
current.add(0);
int rIndex = 0; // 初始化改变位置的下标
System.out.println("count=" + count + ", number=" + getCurrentStr(current, eleArray));
while (true) {
rIndex = calcRIndex(current, rIndex);
// 验证是否能被开平方
String currentStr = getCurrentStr(current, eleArray)