目录
第 31 中学的数学家们接到了以下任务:
给你一个多数 n?,你需要找出 n?个不同的数,它们都是整数的平方。但事情没那么简单。每个数字的长度应为 n?(并且不应有前导零),所有数字的多位数集应相同。例如, 234 和 432?、 11223和 32211的多位数集是相同的,而123 和112233 则不相同。
数学家们无法解决这个问题。你能解决吗?
输入
第一行包含一个整数 t ( 1 <= t <= 100) - 测试用例的数量。
接下来的 t 行包含一个多整数 n?( 1 <= n <= 99 )--需要查找的数字个数及其长度。
保证解决方案存在于给定的约束条件中。
保证 n^ 2的和不超过 10^5。
数字可以任意顺序输出。
输出
对于每个测试用例,您需要输出长度为 n 的 n个数字问题的答案。
如果有多个答案,则打印其中任何一个。? ? ? ? ? ? ? ??
解法2在暴力求解(n <= 10)过程中,可以发现当n为偶数时,并没有满足要求的数,可以推测大概偶数情况下都没有满足要求的数。
可以发现1...3和3....1和13....和31....的平方都有相似的数字结构,其中差别只在于出现0的为位置。
import java.io.IOException;
import java.util.*;
/**
* @ProjectName: study3
* @FileName: G
* @author:HWJ
* @Data: 2023/6/16 8:13
*/
public class Main {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
int t = input.nextInt();
for (int o = 0; o < t; o++) {
int n = input.nextInt();
if (n == 1){
System.out.println(1);
continue;
}
for (int i = 0; i < n / 2; i++) {
System.out.println("1" + String.join("", Collections.nCopies(i, "0")) + "6" +
String.join("", Collections.nCopies(i, "0")) + "9" + String.join("", Collections.nCopies(n - 3 - i * 2, "0")));
System.out.println("9" + String.join("", Collections.nCopies(i, "0")) + "6" +
String.join("", Collections.nCopies(i, "0")) + "1" + String.join("", Collections.nCopies(n - 3 - i * 2, "0")));
}
System.out.println("196" + String.join("", Collections.nCopies(n - 3, "0")));
}
}
}