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

関数の値がC++でAに最も近い指定されたリストから番号を検索します


F(n)=P –(0.006 * n)のような関数F(n)があるとします。ここで、Pも与えられます。整数のリストと数値Aが与えられます。タスクは、関数の値がAに近い、与えられたリストから数値を見つけることです。したがって、P =12、A =5の場合、リストは{1000 、2000}したがって、出力は1000になります。したがって、P=12およびA=5の場合、1000の場合、F(1000)=12 –(0.006 * 1000)=6であり、2000の場合、F(2000)=12 –(0.006 * 2000)=0、5に最も近い値は6であるため、これが採用されます。

リスト内の各値を反復処理し、すべての値のF(n)を見つけます。ここで、F(n)とAのすべての値の絶対差を比較すると、絶対差が最小になるnの値が答えになります。

#include<iostream>
#include<cmath>
using namespace std;
int nearestValue(int P, int A, int N, int arr[]) {
   int ans = -1;
   float temp = (float)INFINITY;
   for (int i = 0; i < N; i++) {
      float term = P - arr[i] * 0.006;
      if (abs(term-A) < temp) {
         temp = abs(term - A);
         ans = i;
      }
   }  
   return arr[ans];
}
int main() {
   int P = 12, A = 5;
   int array[] = {1000, 2000, 1001};
   int N = sizeof(array)/sizeof(array[0]);
   cout << "Nearest value is: " << nearestValue(P, A, N, array) << endl;
}

出力

Nearest value is: 1001

  1. 与えられたグラフのブリッジエッジの数を見つけるためのC++プログラム

    n個の頂点とm個のエッジを含む重み付けされていない無向グラフが与えられたとします。グラフのブリッジエッジは、グラフを削除するとグラフが切断されるエッジです。与えられたグラフでそのようなグラフの数を見つける必要があります。グラフには、平行なエッジや自己ループは含まれていません。 したがって、入力がn =5、m =6、edges ={{1、2}、{1、3}、{2、3}、{2、4}、{2、5}、{3 、5}}の場合、出力は1になります。 グラフには、{2、4}のブリッジエッジが1つだけ含まれています。 これを解決するには、次の手順に従います- mSize := 100 Define an

  2. C ++を使用して、指定されたポイントから可能な四辺形の数を見つけます

    四辺形は、ユークリッド平面幾何学で4つの頂点と4つのエッジを持つポリゴンを形成します。名前4-gonなど。四辺形の他の名前に含まれ、正方形、表示スタイルなどとしても知られています。 この記事では、与えられた点から可能な四辺形の数を見つけるためのアプローチを説明します。この問題では、デカルト平面に提供された4つの点(x、y)を使用して作成できる四辺形の数を調べる必要があります。だからここに与えられた問題の例があります- Input : A( -2, 8 ), B( -2, 0 ), C( 6, -1 ), D( 0, 8 ) Output : 1 Explanation : One quadr