How to check if a sequence of numbers is a Harmonic progression (reciprocals Arithmetic progression) in Scala

1 Answer

0 votes
import scala.util.control.Breaks._

object SequenceIsHarmonicProgression_Scala {
  def isHarmonicProgression(arr: Array[Double]): Boolean = {
    val size = arr.length
    if (size == 1) return true

    val difference = (1.0 / arr(1)) - (1.0 / arr(0))
    var result: Boolean = true

    breakable { 
      for (i <- 2 until size) {
        if ((1.0 / arr(i)) - (1.0 / arr(i - 1)) != difference) {
          result = false
          break
        }
      }
    }

    return result
  }

  def main(args: Array[String]): Unit = {
    val arr = Array(1.0 / 5, 1.0 / 10, 1.0 / 15, 1.0 / 20, 1.0 / 25)
    
    println(if (isHarmonicProgression(arr)) "Yes" else "No")
  }
}



/*
run:

Yes

*/

 



answered Sep 22, 2024 by avibootz
edited Sep 27, 2024 by avibootz
...