目錄
題目:
題目描述:
題目鏈接:
思路:
思路詳解:
易錯點:
代碼:
代碼詳解:
題目:
題目描述:
題目鏈接:
P10898 [藍橋杯 2024 省 C] 拼正方形 - 洛谷
拼正方形 - 藍橋云課
思路:
思路詳解:
其實這題就是一道數學題,先用2x2的方塊拼盡可能大的正方形,再用1x1的方塊來補看能不能加邊長,題目不難但是還是有易錯點的
易錯點:
代碼:
代碼詳解:
#include<bits/stdc++.h> //數學題:先用2x2的方塊拼盡可能大的正方形,再用1x1的方塊來補看能不能加邊長
using namespace std; //這里還有易錯點:邊長x的正方形,圍半圈1x1的方塊就邊長加1了,即圍x*2+1塊 //易錯:認為在邊長x的正方形整個外面圍一圈,實際上在外面整個圍一圈是邊長加2
int main()
{
// int a=sqrt(7385137888721); a=2717561,想要拼成一個正方形,需要的2x2的方塊數必須是完全平方數
// int b=a*2; b=5435122,每個方塊邊長為2,所以拼成大正方形的邊長是5435122
// cout<<a<<endl;
// cout<<b<<endl;
// int c=b*2+1;
// cout<<c<<endl; c=10870245表示的是圍半圈使邊長加1需要的1x1方塊,實際只有10470245printf("5435122"); //所以給的1x1還不都讓邊長加1,答案就是5435122 return 0;
}