C++でn辺の凸多角形の対角線の数を求めます
数nがあり、n辺の凸多角形の対角線の数を見つける必要があるとします。したがって、n =5の場合、対角線の数は5になります。
これはn面の凸多角形であるため、各頂点からn – 3の対角線を描画して、2つの側面に隣接する頂点とそれ自体を残すことができます。したがって、n個の頂点の場合はn *(n-3)になりますが、2回検討しているため、n(n – 3)/2になります。
例
#include<iostream> using namespace std; int diagonalCount(int n) { return n * (n - 3) / 2; } int main() { int n = 8; cout << n << " sided convex polygon has " << diagonalCount(n) << " diagonals"; }があります
出力
8 sided convex polygon has 20 diagonals
-
C++で数値の立方根を見つける
ここでは、数値の立方根を取得する方法を説明します。数値が27とすると、この数値の立方根は3になります。この問題を解決するために、ライブラリ関数を使用せずに独自のロジックを定義します。二分探索アプローチを使用します。この問題を解決するには、次の手順に従う必要があります。 threshold =0.000001のようなしきい値があるとします。 左の値を0として開始し、右の値を数値として開始します 中央を計算する:=(左+右)/ 2 (number – mid3)の絶対値がしきい値よりも小さい場合は、回答としてmidを返します mid3が数値より大きい場合は、右に設定しま
-
C++で整数の1の補数を見つける
このセクションでは、整数の1の完全なものを見つける方法を説明します。補数演算子を使用してこのタスクを非常に高速に実行できますが、32ビットの補数値(4バイト整数)になります。ここでは、nビット数の補数が必要です。 22という数値があるとします。2進数に相当するものは10110です。補完された値は01001で、これは9と同じです。ここで問題が発生します。この値を見つける方法は?最初に、与えられた数のビット数を見つける必要があります。カウントがcであると仮定します(ここでは、22の場合はc =5)。 51を作成する必要があります。したがって、これは11111になります。これを行うには、1を左にc