直角三角形

程序员数学(17)–勾股定理

三世轮回 提交于 2020-01-30 00:11:43
勾股定理 如果直角三角形的两条直角边长分别为a、b,斜边长为c,则 勾股定理的证明 如上图,四个全等的直角三角形围成一个中间的正方形,直角三角形的直角边长分别为a、b,斜边长为c。 1、三角形面积为:a*b/2 2、中间围成的正方形边长为b-a,正方形面积为(b-a)(b-a) 3、因为直角三角形全等,所以∠DAE=∠ABE,所以∠DAB=90°,然后又因为四个三角形全等,所以可以得出外围四边形的四条边相等。所以外围四边形为正方形。 4、所以正方形的面积即可以为边长的平方,也可是4个三角形的面积加上内部正方形面积,即为: 勾股定理的逆定理 如果三角形的边长a、b、c满足 则该三角形为直角三角形,该证明比较简单,此处不再具体证明了。 来源: CSDN 作者: 熊猫大哥大 链接: https://blog.csdn.net/woshisangsang/article/details/104110463

Latex学习笔记 第一章

无人久伴 提交于 2020-01-28 16:41:14
1.使用空行分段。 空行只起分段的作用,使用过多的空行并不起增大段间间距的作用。 2.段前不用打空格,LateX会自动完成文字的缩进。 即使打了也会被自动忽略。 3.通常汉字后面的空格会被忽略,其他符号后面的空格则保留。 4.字号和字体命令会影响垢面的所有文字,直到整个分组结束,这种命令又称为声明。 5.分组限定了声明的作用范围。 一个LateX环境自然就是一个分组,因此前前面的字号、字体命令会影响整个quote环境。最大的分组是表示正文的document环境,也可以用成对的花括号{}产生一个分组。 6.定理环境是一类环境,在使用前需要先在导言区做定义:\newtheorem{thm}{定理} 此处定理环境有一个可选参数就是定理的名字。 \newtheorem{thm}{定理} \begin{thm}[勾股定理] 直角三角形斜边的平方和等于两腰的平方和。 可以用符号语言表述为 \end{thm} 7.输入数学公式 (1)简单的方法是将公式用一对美元符号$a+b$,这种夹在文本行中的公式称为“正文公式”或“行内公式” (2)对于较长或比较重要的公式一般单独居中写在一行,为了方便引用经常给公式加上编号。这种公式被称为“显示公式”或“列表公式”,使用equation环境就可以输入 这种公式。例: \begin{equation} a(b+c)=ab+bc \end{equation}

已知直角三角形周长求可能的三角形个数

╄→гoц情女王★ 提交于 2019-12-03 21:19:02
  没想到我又开始写博客了,嘿嘿,逛论坛时一个大一小萌新问问题刚好看到,题目虽然简单但还挺有意思的,如果去年看到肯定给新生加到acm训练题里,可惜没机会了。   题目给出直角三角形周长,问有多少种满足条件的三角形,学过c语言循环的都能两重循环直接爆出来,但是这道题卡的是时间,1s最高一万的测试数据,每个数据最大10万,保险起见复杂度应该降到O(n)。   思路写到代码里了,主要利用一些数学关系优化,算法题还是很好玩,以后抽时间做一些leetcode之类的题,顺便水博客了。 代码如下: 1 #include <cstdio> 2 #include <iostream> 3 4 using namespace std; 5 6 int main() 7 { 8 //freopen("out.txt", "w", stdout); 9 int T; 10 cin >> T; 11 while(T--) { 12 long long m; 13 cin >> m; 14 15 //直角三角形三边关系,短直角边长度一定小于1/3,可以约束的更狠一点,为了方便我就取1/3了 16 long long maxa = m / 3; 17 18 long long ans = 0; 19 for(long long a = 1; a <= maxa; ++a) { 20 if(a * a % (m

输入直角三角形的两直角边求斜边长(17)

匿名 (未验证) 提交于 2019-12-03 00:30:01
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> float fac(int x,int y) { float z; z=sqrt(x*x+y*y); return z; } int main() { printf("请输入直角三角形的两个直角边(用逗号隔开):"); int x,y; scanf("%d,%d",&x,&y); printf("斜边长为:%.2f",fac(x,y)); return 0; } 文章来源: 输入直角三角形的两直角边求斜边长(17)

华为笔试:直角三角形个数

匿名 (未验证) 提交于 2019-12-02 23:57:01
1、直角三角形个数 华为笔试:直角三角形个数 i+j+k=p, 0<i<=j<k, 通过解不等式,可以得到:i<p/3, j<p/2。 2、矩阵相邻判断 https://www.cnblogs.com/LJ-LJ/p/11455415.html 题目描述: 一个矩阵,5*5,取相邻(二个成员有一个边是相同的)的6个,输入一个6个成员列表,判断是否满足? 矩阵成员如下: [[1,2,3,4,5], [11,12,13,14,15], [21,22,23,24,25], [31,32,33,34,35], [41,42,43,44,45]]. 输入描述: 包含6个矩阵成员数组,如:1,2,3,4,5,11以一个空格分隔,支持多行 1,2,3,4,5,11 1,2,11,14,25,15 输出描述: 满足输出1,否则输出0,每一行输入一个输出 1 0 备注: 输入没有合法判断,每个成员不重复。 思路分析: 利用并查集实现。设定一个长度为6的数组,其中每个成员单独成组,接下来判断两两是否相邻,若相邻则合并为一组。最后判断是否存在孤立的组,若有则输出0,否则输出1。 来源:博客园 作者: ostartech 链接:https://www.cnblogs.com/wxl845235800/p/11456707.html

用JAVA写数字金字塔

一个人想着一个人 提交于 2019-12-02 06:58:42
今年的蓝桥杯中我遇到了一道题是关于数字金字塔的,那时候在比赛时可能是各方面的因素有思路但是没有实现,直到今天回过头来看,其实只要思路正确了题目就会迎刃而解了,其实数字金字塔的的解题思路就是把金字塔分成两个直角三角形 如下所示: 1 12 1 123 21 1234 321 12345 4321 123456 54321 左边的是6行的直角三角形,他的规律就是每行的最大数就等于行数,那么用代码实现就是: for(int i=1;i<=6;i++){ //外层循环控制行数 for(int j=1;j<=i;j++){ //打印左边的三角形,保证每行的最大数等于行数 System.out.print(j); }} 右边的是5行的直角三角形,他的规律就是每行输出的数从左到右逆序输出就是大的在前小的在后,而且最大的数比行数小1,第一行不输出,那我们用代码实现就是: for(int j=i-1;j>=1;j--){ System.out.print(j); } 大体思路就这样实现了,那么把代码整合下,我们的题目也就解出来了,如下所示: public class angle { public static void main(String[] args){ for(int i=1;i<=6;i++){ //外层循环控制行数 //打印空格 for(int j=1;j<=6-i;j++){

Day7 T1 直角三角形

为君一笑 提交于 2019-11-29 11:35:46
题目 二维平面坐标系中有N个点。从N个点选择3个点,问有多少选法使得这3个点形成直角三角形。 输入 第一行包含一个整数N(3 \(\leqslant\) N$\leqslant \(1500),表示点数。 接下来N行,每行包含两个用空格隔开的整数表示每个点的坐标,坐标值在\) -10^9$到 \(10^9\) 之间。每个点位置互不相同。 输出 输出直角三角形的数量。 样例 输入 输出 3 4 2 2 1 1 3 1 4 5 0 2 6 8 6 5 7 0 5 -1 1 -1 0 0 0 1 0 1 1 7 题解 固定一个点P,平移整个坐标系,使得P为原点。现在,对于每个点,首先确定其所在的象限,然后将其旋转k•90°(k∈Z),使其落在第一象限中。之后,按照过点的正比例函数的斜率k(纵坐标除以横坐标)对所有点进行排序。如果两个点斜率相同并且旋转之前在相邻的象限中,它们就能形成以P为直角顶点的直角三角形。排序后,对于每一组斜率相同的点,统计它们原来在每个象限的点的个数,并将相邻象限的点的数量相乘。时间复杂度为 \(O(N^2logN)\) 。(这就是为什么 \(O(N^3)\) 的暴力枚举在加一堆玄学优化后也能卡过:因为正解的时间复杂度也不低) #include<bits/stdc++.h> using namespace std; typedef long long ll; int

华为笔试:直角三角形个数

允我心安 提交于 2019-11-29 05:23:45
1、直角三角形个数 华为笔试:直角三角形个数 i+j+k=p, 0<i<=j<k, 通过解不等式,可以得到:i<p/3, j<p/2。 2、矩阵相邻判断 https://www.cnblogs.com/LJ-LJ/p/11455415.html 题目描述: 一个矩阵,5*5,取相邻(二个成员有一个边是相同的)的6个,输入一个6个成员列表,判断是否满足? 矩阵成员如下: [[1,2,3,4,5], [11,12,13,14,15], [21,22,23,24,25], [31,32,33,34,35], [41,42,43,44,45]]. 输入描述: 包含6个矩阵成员数组,如:1,2,3,4,5,11以一个空格分隔,支持多行 1,2,3,4,5,11 1,2,11,14,25,15 输出描述: 满足输出1,否则输出0,每一行输入一个输出 1 0 备注: 输入没有合法判断,每个成员不重复。 思路分析: 利用并查集实现。设定一个长度为6的数组,其中每个成员单独成组,接下来判断两两是否相邻,若相邻则合并为一组。最后判断是否存在孤立的组,若有则输出0,否则输出1。 来源: https://www.cnblogs.com/wxl845235800/p/11456707.html