解题思路:
很容易看出相交的面积 S = (x2-x3)(y2-y3), 仔细发现x2,x3是相交矩形的左右边的x坐标。y2,y3是相交矩形的上下边的y坐标。
进一步分析,相交矩形的左边线是两个矩形的左下标的x值的相比较大的一个也就是上图的x3,相交矩形的左边线是两个矩形的右上标的y值的相比较小的一个也就是上图的y2,所以我们可以得出
rx = min(max(x1,x2),max(x3,x4))
lx = max(min(x1,x2),min(x3,x4))
上下边的y坐标也是此规律。
注意事项:
加个判断是否相交。
参考代码:
xy1 = list(map(float,input().split())) xy2 = list(map(float,input().split())) rx = min(max(xy1[0],xy1[2]),max(xy2[0],xy2[2])) lx = max(min(xy1[0],xy1[2]),min(xy2[0],xy2[2])) uy = min(max(xy1[1],xy1[3]),max(xy2[1],xy2[3])) dy = max(min(xy1[1],xy1[3]),min(xy2[1],xy2[3])) w,h = rx-lx,uy-dy if w<=0.0 or h<=0.00: print("0.00") else: #print((str(w*h)+"00").split(".")[0]+"."+(str(w*h)+"00").split(".")[1][:2:]) 不进位输出小数点后两位 print("%.2f"%(w*h))
0.0分
7 人评分
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:816 |
不知道哪里错了浏览:1226 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:932 |
母牛的故事 (C语言代码)浏览:478 |
【亲和数】 (C语言代码)浏览:908 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:798 |
【排队买票】 (C语言代码)浏览:944 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:642 |
A+B for Input-Output Practice (VI) (C语言代码)浏览:575 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2256 |