一、题目链接
http://noi.openjudge.cn/ch0103/17/
二、解题思路(Java)
◎ 高斯鞋带公式(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2用于计算三角形面积,计算结果可能为负;
◎ Java中,Math.abs方法计算一个数的绝对值,称为绝对值操作,例如:
→ Math.abs(-1)返回值为1;
→ Math.abs(1.5)返回值为1.5;
◎ 输入三个顶点的横坐标和纵坐标,通过高斯鞋带公式和Math.abs方法计算三角形面积。
三、实施步骤(Java)
◎ 首先,定义并输入六个float类型的浮点数x1、y1、x2、y2、x3、y3,分别代表三个顶点的横坐标、纵坐标;
◎ 其次,定义float类型的浮点数ans,代表三个顶点构成三角形的面积,令ans=Math.abs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2;
◎ 最后,通过格式化输出语句printf配合"%.2f"标记,输出ans。
四、解题思路(C++)
◎ 高斯鞋带公式(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2用于计算三角形面积,计算结果可能为负;
◎ C++的cmath库提供abs函数计算一个数的绝对值,称为绝对值操作,例如:
→ abs(-1)返回值为1;
→ abs(1.5)返回值为1.5;
◎ 输入三个顶点的横坐标和纵坐标,通过高斯鞋带公式和abs函数计算三角形面积。
五、实施步骤(C++)
◎ 首先,定义并输入六个float类型的浮点数x1、y1、x2、y2、x3、y3,分别代表三个顶点的横坐标、纵坐标;
◎ 其次,定义float类型的浮点数ans,代表三个顶点构成三角形的面积,令ans=abs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2;
◎ 最后,通过格式化输出语句printf配合"%.2f"标记,输出ans。
六、Java程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
float x1 = input.nextFloat();
float y1 = input.nextFloat();
float x2 = input.nextFloat();
float y2 = input.nextFloat();
float x3 = input.nextFloat();
float y3 = input.nextFloat();
float ans = Math.abs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2) / 2;
System.out.printf("%.2f", ans);
}
}
七、C++程序
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float x1;
float y1;
float x2;
float y2;
float x3;
float y3;
cin >> x1;
cin >> y1;
cin >> x2;
cin >> y2;
cin >> x3;
cin >> y3;
float ans = abs(x1 * y2 + x2 * y3 + x3 * y1 - x1 * y3 - x2 * y1 - x3 * y2) / 2;
printf("%.2f", ans);
return 0;
}