当前位置: 首页 > 编程笔记 >

计算C ++中给定周长可能的直角三角形数量

岳谦
2023-03-14
本文向大家介绍计算C ++中给定周长可能的直角三角形数量,包括了计算C ++中给定周长可能的直角三角形数量的使用技巧和注意事项,需要的朋友参考一下

给定三角形的周长P。周长是三角形所有边的总和。目的是找到可以制造的具有相同周长的直角三角形的数量。

如果三角形的边是a,b和c。然后a + b + c = P和a2 + b2 = c2(a,b和c的任意组合的毕达哥拉斯定理)

我们将通过从1到p / 2的a和从a + 1到p / 3的b进行检查。然后c = pab(a + b + c = p)

对于所有直角三角形,应用毕达哥拉斯定理。a,b和c的值还应满足形成三角形的条件,其中任意两个边的总和始终大于第三。

让我们通过示例来理解。

输入-周长P = 12

输出-直角三角形总数-1

说明-

满足a + b + c = P且a 2 + b 2 = c 2(也是任何两个>第三的和)的a,b和c的唯一值是4、3和5。

4 + 3 + 5 = 12,3 * 3 + 4 * 4 = 5 * 5(9 + 16 = 25)3 + 4> 5,4 + 5> 3,3 + 5> 4

输入-周长P = 10

输出-直角三角形总数-0

说明-

没有a,b和c的值可以满足a + b + c = P且a 2 + b 2 = c 2

以下程序中使用的方法如下

  • 我们采用整数变量周长,该变量存储给定周长的值。

  • 函数rightTriangles(int p)将周长作为输入,并返回可能的直角三角形总数。

  • 可变计数存储可能的直角三角形的数量,最初为0。

  • 使用for循环从a = 1到p / 2

  • 再次为b = a + 1至p / 3使用嵌套的for循环开始(两个边在直角三角形中永远不相等)

  • 计算c = pab。为此,请检查(a + b> c && b + c> a && a + c> b)。

  • 还要检查毕达哥拉斯定理,其中a * a + b * b == c * c。如果为真,则递增计数。

  • 最后,返回计数包含在给定周长下可能的直角三角形数量。

  • 返回计数为所需结果。

注意-我们将仅针对pythagoras定理检查a,b和c的一种组合,以获得唯一的结果。

示例

#include <bits/stdc++.h>
using namespace std;
int rightTriangles(int p){
   int count = 0;
   int c=0;
   for( int a=1;a<p/2;a++){
      for(int b=1;b<p/3;b++){
         c=p-a-b;
         if( a+b>c && b+c>a && a+c>b) //condition for triangle{
            if( (a*a+b*b)==c*c ) //pythagoras rule for right triangles
               { ++count; }
         }
      }
   }
   return count;
}
int main(){
   int perimeter= 12;
   cout << "Total number of right triangles that can be formed: "<<rightTriangles(perimeter);
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Total number of right triangles that can be formed: 1
 类似资料:
  • 我们的OOP老师给我布置了一个作业。虽然我的代码看起来很好,但我仍然面临这个问题。 我必须从用户那里获取三角形顶点的坐标,并且必须判断它是否是一个r直角三角形。所以我简单地用毕达哥拉斯定理来求它,我们都知道用条件:h*h=b*b+p*p 但令人惊讶的是,这对某些特定的直角三角形不起作用。这里有一个这样的三角形: 顶点A:(x,y)=(1,3) 顶点B:(x,y)=(1,1) 顶点C:(x,y)=(

  • 本文向大家介绍Python中最大的周长三角形,包括了Python中最大的周长三角形的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个正长度的数组A,我们必须找到面积为非零的三角形的最大周长,该三角形由这些长度中的3个组成。当不可能形成任何非零区域的三角形时,则返回0。 因此,如果输入类似于[3,6,2,3],则输出将为8。 为了解决这个问题,我们将遵循以下步骤- 排序列表A a:=从A删除最

  • 一个角度为90°的三角形称为直角三角形。 我们现在将看到如何以直角三角形打印星星*。 算法 (Algorithm) 算法看起来像这样 - Step 1 - Take number of rows to be printed, n. Step 2 - Make outer iteration I for n times to print rows Step 3 - Make inner iterat

  • 问题内容: 我想尝试一个直角三角形的星号。但是我只得到以下 输出:( 我不能在这里放置星号) 我想要的是这样的: 这是我编写的代码: 任何想法分享,我们将不胜感激。我是Java新手。谢谢。 问题答案: 您的代码从不打印任何空格,这应该是一个问题。 您可以使用以下简单方法: 逻辑很简单:您的字符串带有两个空格和三个at符号。输出的第一行必须是两个空格和一个at符号,因此这是字符串的前三个字符。第二行

  • 本文向大家介绍PHP实现的简单三角形、矩形周长面积计算器分享,包括了PHP实现的简单三角形、矩形周长面积计算器分享的使用技巧和注意事项,需要的朋友参考一下 运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积。本图形计算器有4个页面:1.PHP图形计算器主页index.php;    2.形状的抽象类shape.class.

  • 问题内容: http://upload.wikimedia.org/math/f/e/5/fe56529cdaaaa9bb2f71c1ad8a1a454f.png <-区域公式 我试图从2D笛卡尔坐标系中的3个点(x,y)计算三角形的面积。我假设我的上述公式正确产生了三角形的面积(如果不是,请更正我),但是我的编译器说“运算符- 无法应用于java.awt.Point,java.awt.Point