現在,我們要在平面上畫出 個邊長為
注意,這
每個正方形的所有端點坐标都必須為整數,且所有邊都必須平行于坐标軸。
我們将逐邊繪制整個圖形。
當繪制某一條邊時,如果該邊的兩端端點為 和 ,而我們在之前已經繪制了一條端點為 和
同樣的,如果即将繪制的邊的兩端端點為 和 ,而我們在之前已經繪制了一條端點為 和
但是,如果即将繪制的邊不滿足上述條件,也就是不具備參考邊,則為了保證繪圖精确,我們需要借助尺子來繪制該條邊。
例如,當
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SM0gzN5ATO2MGN1YGZ5MWNzYzXzUDOyETM5IzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
然後,借助以上兩邊完成剩餘兩邊的繪制:
當
然後,借助以上三邊完成剩餘所有邊的繪制:
我們希望在畫出 個邊長為
請問,最少需要用尺子畫多少條邊。
輸入格式
第一行包含整數 ,表示共有
每組資料占一行,包含一個整數 。
輸出格式
每組資料輸出一行結果,表示需要用尺子繪制的最少邊數。
資料範圍
輸入樣例:
3
1
2
4
2
3
4
#include<iostream>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
int n;
cin >> n;
int res = n + 1;
for(int a = 1; a <= (n + a - 1) / a; a++)
res = min(res, a + (n + a - 1) / a);
cout << res << endl;
}
return 0;
}