本题比较基础,画出几个样例找出规律即可。
如果两个边长 a,b 中至少有一个是偶数,则最短距离为 a*b;
如果两个边长都是奇数,则最短距离为 a*b-1+1.414。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin >> n;
int a, b;
for (int i = 1; i <= n; i++)
{
cin >> a >> b;
cout << "Scenario #" << i << ":" << endl;
if (a % 2 == 0 || b % 2 == 0)
cout << fixed << setprecision(2) << (double)a*b << endl;
else
cout << fixed << setprecision(2) << (double)a*b + 0.414 << endl;
cout << endl;
}
return 0;
}
继续加油。