이 문제에서 우리는 5개의 값 m, n, mth term, nth term, 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의 값을 찾을 수 있습니다. 그러면 a는 다음과 같이 m번째 항목의 값을 사용하여 찾을 수 있습니다.
mth term = a * (r^(m-1))
그런 다음 및 r의 값을 찾은 후. pth 용어의 값은 다음을 사용하여 쉽게 찾을 수 있습니다.
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