在排序的数组中查找所有三元组,这些数组在C ++中形成“几何级数”

假设我们有一个带有不同正整数的排序数组。我们必须找到所有三元组,它们形成具有整数公共比例的几何级数。假设数组元素为[1、2、6、10、18、54],三元组为(2、6、18)和(6、18、54),它们形成了几何级数。

为了解决这个问题,我们将从第二个元素开始,将每个元素固定为中间元素,然后搜索较小和较大的元素。对于中间元素arr [j]为几何级数的中间,前一个元素arr [i]和arr [k]类似于

$$\ frac {arr [j]} {arr [i]} = \ frac {arr [k]} {arr [j]} = r