程式碼
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
long long B,R,sq,W,H,t,D,k;
while(cin>>B>>R)
{
sq=(long long)sqrt((double)R);
for(int i=1;i<=sq;++i)
{
if(R%i==0)
{
W=i;
H=R/i;
D=(W+H)*(W+H)+4*B;
t=(long long)sqrt(D);
if(t*t==D)
{
k=(-(W+H)+t)/2;
cout<<H+k<<" "<<W+k<<endl;
break;
}
}
}
}
return 0;
}
輸入
3248 8740
輸出
您的答案為: 444 27
正確答案為: 111 108
444 27 應該才是正確答案吧 內矩形 437*20 邊框7

這邊以上圖的標示做說明。
以你的說明「內矩形:437×20, 邊框:7」
這樣整體矩形的寬與高應該分別為:
整體寬 = 437+7×2 = 451
整體高 = 20 + 7×2 = 34
正確的長寬應為 451×34
另外同樣以「內矩形:437×20, 邊框:7」來說,
內矩形面積 = 437×20 = 8740 (正確)
外框面積 = (437+20)×7+7×7×4 = 3395 (錯誤)
故「內矩形:437×20, 邊框:7」並不符合題目要求。
該測資的解答應為「整體矩形:111×108, 內矩形:95×92, 邊框:8」。

這邊以上圖的標示做說明。
以你的說明「內矩形:437×20, 邊框:7」
這樣整體矩形的寬與高應該分別為:
整體寬 = 437+7×2 = 451
整體高 = 20 + 7×2 = 34
正確的長寬應為 451×34
另外同樣以「內矩形:437×20, 邊框:7」來說,
內矩形面積 = 437×20 = 8740 (正確)
外框面積 = (437+20)×7+7×7×4 = 3395 (錯誤)
故「內矩形:437×20, 邊框:7」並不符合題目要求。
該測資的解答應為「整體矩形:111×108, 內矩形:95×92, 邊框:8」。
感謝指導 果然還是要有圖比較清楚