C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の配列値から三角形を形成することが可能


この問題では、整数の配列が与えられます。私たちのタスクは、配列の要素を三角形の辺としてとる非縮退三角形の作成を確認することです。

非縮退三角形 −それは正の面積を持つ三角形です。辺がa、b、cの非縮退三角形の条件は-

です。
a + b > c
a + c > b
b + c > a

問題をよりよく理解するために例を見てみましょう-

入力 − arr [2、5、9、4、3]

出力 −はい

説明 −形成される三角形は234です。

この問題を解決するために、上記の条件が配列の値によって満たされていることを確認します。

簡単な解決策には、アレイのすべてのトリプレットを直接チェックすることが含まれます。

より効果的な解決策には、配列要素の並べ替えと、配列の3つの連続するトリプレットのチェックが含まれます。ソートされた配列については、2つの要素の合計が次の要素より大きくない場合は、その後の値をチェックする価値がありません(すでに大きい)。

ソリューションの実装を示すプログラム

#include <bits/stdc++.h>
using namespace std;
bool isTrianglePossible(int arr[], int N){
   if (N < 3)
      return false;
   sort(arr, arr + N);
   for (int i = 0; i < N - 2; i++)
      if (arr[i] + arr[i + 1] > arr[i + 2])
         return true;
}
int main() {
   int arr[] = {5, 12, 13, 65, 6, 1};
   int N = sizeof(arr) / sizeof(int);
   cout<<"Creation of triangle from elements of array ";
   isTrianglePossible(arr, N)?cout<<"is Possible": cout<<"is not Possible";
   return 0;
}

出力

Creation of triangle from elements of array is Possible

  1. C++関数から複数の値を返す

    CまたはC++では、関数から直接複数の値を返すことはできません。このセクションでは、いくつかのトリックを使用して関数から複数の値を返す方法を説明します。 「アドレスによる呼び出し」または「参照による呼び出し」と呼ばれるメソッドを使用して、関数から複数の値を返すことができます。呼び出し元関数では、2つの変数を使用して結果を格納し、関数はポインター型のデータを取得します。したがって、データのアドレスを渡す必要があります。 この例では、1つの関数から2つの数値を除算した後、商と余りを返すことができる関数を定義する方法を説明します。 アドレスによる呼び出し 例 #include<iostre

  2. C ++の関数から配列を返す方法は?

    C ++は配列全体を返すわけではありませんが、配列へのポインタを返すことはできます。関数外では、ローカル変数のアドレスを返すことはできません。ローカル変数を静的にすることで、ローカル変数のアドレスを返すことができます。 ポインタを返す構文は次のとおりです。 int * function_name() { body } ここで function_name −ユーザーが指定した関数の名前。 以下は、関数から配列を返す例です。 例 #include <iostream> using namespace std; int * ret() {    stati