Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm N trung bình hình học giữa A và B bằng C++


Giả sử chúng ta có ba số nguyên A, B và N. Chúng ta phải tìm N trung bình hình học giữa A và B. Nếu A = 2, B = 32, và N = 3, thì kết quả sẽ là 4, 8, 16.

Nhiệm vụ đơn giản là chúng ta phải chèn N phần tử vào cấp số nhân (Geometric Progression) nơi A và B là số hạng đầu và cuối của dãy đó. Giả sử G1, G2, .... Gn là n trung bình hình học. Vậy dãy sẽ là A, G1, G2, .... Gn, B. Vì vậy B là số hạng thứ (N + 2) của dãy. Vì vậy chúng ta có thể dùng các công thức sau:

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

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

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

Ví dụ

#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); }

Kết quả

9 27