以下是一个Python解决方案: ```python n, m = map(int, input().split()) # 先构建一个满足连续m个数和为完全平方数的基础序列 # 设前m个数的和为一个完全平方数,这里设为m^2 # 我们可以通过递推的方式来构建整个序列 # 假设当前已经有了一个长度为k的序列,要添加第k + 1个数 # 为了保证连续m个数的和是完全平方数,我们可以根据前面的和来计算 sums = [i2 for i in range(1, n - m + 2)] sequence = [0] * n # 先确定前m个数 for i in range(m): # 假设前m个数的和为m^2,通过平均分配的思想来初始化前m个数 sequence[i] = m2 // m # 从第m个数开始递推构建序列 for i in range(m, n): # 计算当前连续m个数的和(目标完全平方数) target_sum = sums[i - m + 1] # 计算前m - 1个数的和 current_sum = sum(sequence[i - m + 1:i]) # 计算第i个数的值 sequence[i] = target_sum - current_sum # 调整序列使其严格递增 for i in range(1, n): if sequence[i] <= sequence[i - 1]: # 为了保证严格递增,将当前数调整为比前一个数大1 sequence[i] = sequence[i - 1] + 1 # 输出结果 print(" ".join(map(str, sequence))) ``` 代码解释 1. 输入读取:使用`map(int, input().split())`读取输入的`n`和`m`。 2. 完全平方数列表:创建一个包含从1到`n - m + 1`的完全平方数的列表`sums`。 3. 序列初始化:先初始化一个长度为`n`的列表`sequence`,并将前`m`个数初始化为`m^2 // m`。 4. 递推构建序列:从第`m`个数开始,根据前面的和和目标完全平方数来计算当前数的值。 5. 调整序列:遍历序列,确保序列严格递增。 6. 输出结果:将序列中的元素转换为字符串并以空格连接后输出。 额外注意的逻辑点 1. 边界条件:在递推构建序列时,要注意索引的边界,确保不会越界。 2. 递增调整:在调整序列使其严格递增时,要确保调整后的数仍然满足连续`m`个数的和是完全平方数的条件。 3. 数值范围:要确保序列中的所有数都在`[-10^12, 10^12]`范围内。 [2025-07-10 15:27:32 | AI写代码神器 | 669点数解答]