栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《C语言入门100例》(第12例)给定 r,求以 r 为半径的圆的周长和面积

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《C语言入门100例》(第12例)给定 r,求以 r 为半径的圆的周长和面积

【第12题】给定 r,求以 r 为半径的圆的周长和面积

文章目录
    • 主要知识点
    • 习题
      • 1. Leetcode 812. 最大三角形面积
        • 题目描述
        • 初见
        • 代码
    • 总结

主要知识点

本节主要是数学公式的应用

习题 1. Leetcode 812. 最大三角形面积 题目描述

给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。
提示:3 <= points.length <= 50.
不存在重复的点。
-50 <= points[i][j] <= 50.
结果误差值在 10^-6 以内都认为是正确答案。

初见

看这个数据量…暴力枚举吧。

代码
class Solution {
public:
    double largestTriangleArea(vector>& points) {
        double result(0);
        for (int i = 0; i < points.size(); ++i) { // 第一个点
            for (int j = i + 1; j < points.size(); ++j) { // 第二个点
                for (int k = j + 1; k < points.size(); ++k) { // 第三个点
                    if ((points[i][0] == points[j][0] && points[j][0] == points[k][0]) ||
                        (points[i][1] == points[j][1] && points[j][1] == points[k][1]) ) { // 特殊共线
                            continue;
                    } else { // 海伦公式计算面积
                        double line0 = sqrt( (points[j][0] - points[i][0]) * (points[j][0] - points[i][0]) + 
                                (points[j][1] - points[i][1]) * (points[j][1] - points[i][1]) );
                        double line1 = sqrt( (points[k][0] - points[i][0]) * (points[k][0] - points[i][0]) + 
                                (points[k][1] - points[i][1]) * (points[k][1] - points[i][1]) );
                        double line2 = sqrt( (points[k][0] - points[j][0]) * (points[k][0] - points[j][0]) + 
                                (points[k][1] - points[j][1]) * (points[k][1] - points[j][1]) );
                        double p = (line0 + line1 + line2) / 2;
                        double curS = sqrt(p * (p - line0) * (p - line1) * (p - line2) );
                        if (curS > result) {
                            result = curS;
                        }
                    }
                }
            }
        }

        return result;
    }
};
总结
  1. 本题的难点在于三角形面积计算上。上述代码使用了海伦公式,还有一种用于求多边形面积的鞋带公式
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号