使用C ++在A和B之间找到N个几何平均值。

假设我们有三个整数A,B和N。我们必须在A和B之间找到N个几何平均值。如果A = 2,B = 32,并且N = 3,则输出将是4、8、16

任务很简单,我们必须在几何级数中插入N个元素,其中A和B是该序列的第一项和最后一项。假设G1,G2,...。Gn是n个几何平均值。因此序列将为A,G1,G2...。Gn,B。所以B是序列的第(N + 2)个项。所以我们可以使用这些公式-

$$B = A * R ^ {N + 1} $$

$$R ^ {N + 1} = \ frac {B} {A} $$

$$R = \ lgroup \ frac {B} {A} \ rgroup ^ {\ frac {1} {N + 1}} $$

示例

#include<iostream>
#include<cmath>
using namespace std;
void showMeans(int A, int B, int N) {
   float R = (float)pow(float(B / A), 1.0 / (float)(N + 1));
   for (int i = 1; i <= N; i++)
   cout << (A * pow(R, i)) <<" ";
}
int main() {
   int A = 3, B = 81, N = 2;
   showMeans(A, B, N);
}

输出结果

9 27