题解:P10898 [蓝桥杯 2024 省 C] 拼正方形

· · 题解

思路

数学题。

尽量多拼 2 \times 2 的方块。

发现想要拼成一个正方形,需要的 2 \times 2 的方块数必须是完全平方数。

发现 7385137888721 开方并取整的结果是 2717561

而每个方块的边长为 2,所以拼成的大正方形的边长是 5435122

然后往大正方形外面围上 1 \times 1 的方块。

但是我们发现想要再围上一圈需要 10870245,而我们只有 1047025 块,所以不能继续拼了。

故最大边长为 5435122

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    cout<<"5435122";//输出答案
    return 0;//好习惯
}