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

M番目とN番目の項がC++で指定されている場合は、GPのP番目の項を検索します


この問題では、5つの値m、n、m番目の項、n番目の項、pが与えられます。私たちの仕事は、M番目とN番目の項が与えられている場合にGPのP番目の項を見つけることです。

GPの場合、m番目の項とn番目の項の値が与えられます。これらの値を使用して、シリーズのP番目の項を見つける必要があります。

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

入力

m = 7, mthTerm = 1458, n = 10, nthterm = 39366, p = 3

出力

18

ソリューションアプローチ

ここでは、GPが与えられます。 GPがそうだとしましょう

GP = a , a*r , a*(r2), a*(r3) ….

T th の式 用語は

Tth Term = a * r(T-1)

これで、n番目とm番目の項が与えられます

mth term = a * (r ^ (m-1))
nth term = a * (r ^ (n-1))

得られた方程式を分割する

mth term / nth term = (r ^(m - n))

この式を使用して、rの値を見つけることができます。次に、m番目の項の値を次のように使用してaを見つけることができます

mth term = a * (r^(m-1))

次に、aとrの値を見つけた後。 p番目の項の値は、

を使用して簡単に見つけることができます。
pth term = a * (r^(p-1))

ソリューションの動作を説明するプログラム

#include <cmath>
#include <iostream>
using namespace std;
double findRinGP(double m, double n, double mth, double nth) {
   if (m < n)
      return pow(nth / mth, 1.0 / (n - m));
   return pow(mth / nth, 1.0 / (m - n));
}
double findTermGP(int m, int n, double mth, double nth, int p) {
   double r = findRinGP(m, n, mth, nth);
   double a = mth / pow(r, (m - 1));
   return ( a * pow(r, (p - 1)) );
}
int main() {
   int m = 7, n = 10, p = 5;
   double mth = 1458, nth = 39366;
   cout<<"The "<<p<<"th of the series is "<<findTermGP(m, n, mth, nth, p);
   return 0;
}

出力

The 5th of the series is 162

  1. 数値がAPの一部であり、その最初の要素と差がC++を使用して与えられているかどうかを調べます。

    APの最初の要素があり、違いがあるとします。与えられた数nがAPの一部であるかどうかをチェックする必要があります。最初の項がa=1、differenced =3の場合、項x=7がチェックされます。答えはイエスです。 この問題を解決するために、次の手順に従います- dが0で、a =xの場合はtrueを返し、それ以外の場合はfalseを返します。 それ以外の場合、dが0でない場合、xがシーケンスx =a + n * dに属している場合、nは非負の整数であり、(n --a)/cが非負の整数である場合のみです。 。 例 #include <iostream> using names

  2. 合計とGCDがC++で与えられている2つの数値を見つけます

    2つの数aとbの合計とgcdがあります。数字aとbの両方を見つける必要があります。それが不可能な場合は、-1を返します。合計が6でgcdが2であるとすると、数値は4と2になります。 このアプローチは、GCDが与えられると、その数がその倍数になることが知られているようなものです。次の手順があります 最初の数値をGCDとして選択すると、2番目の数値はsum − GCDになります。 前の手順で選択した数値の合計が合計と同じである場合は、両方の数値を出力します。 それ以外の場合は、数値が存在しないため、-1を出力します。 例 #include <iostream>