甜甜從小就喜歡畫圖畫,最近他買了一支智能畫筆,由於剛剛接觸,所以甜甜只會用它來畫直線,於是他就在平面直角座標系中畫出如下的圖形:
甜甜的好朋友蜜蜜發現上面的圖還是有點規則的,於是他問甜甜:在你畫的圖中,我給你兩個點,請你算一算連接兩點的折線長度(即沿折線走的路線長度)吧。
Input
第一個數是正整數N(≤100)。代表數據的組數。
每組數據由四個非負整數組成x1,y1,x2,y2;所有的數都不會大於100。
Output
對於每組數據,輸出兩點(x1,y1),(x2,y2)之間的折線距離。注意輸出結果精確到小數點後3位。
Sample Input
5
0 0 0 1
0 0 1 0
2 3 3 1
99 99 9 9
5 5 5 5
Sample Output
1.000
2.414
10.646
54985.047
0.000
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
double f(int a,int b)
{
double s=0,l;
int n,i;
n=a+b;
l=(double)sqrt(2);
for(i=1;i<n;i++)//計算有多少個長度爲根號2的邊
{
s+=i*l;
}
s+=a*l;
for(i=0;i<n;i++)
s+=sqrt(pow(i,2)+pow(i+1,2));
return s;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
double sum=0;
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
sum=fabs(f(x1,y1)-f(x2,y2));
printf("%.3lf\n",sum);
}
return 0;
}
題解:將所求兩個座標的之間的距離問題轉換成分別求到原點的距離然後相減得到結果