package kata

func GrowingPlantA(upSpeed, downSpeed, expected int) int {
	n := 1
	for reached := upSpeed; reached < expected; n++ {
		reached += upSpeed - downSpeed
	}
	return n
}

func GrowingPlantB(upSpeed, downSpeed, expected int) int {
	var n, reached int
	for n = 1; reached < expected; n++ {
		reached = upSpeed + (n-1)*(upSpeed-downSpeed)
	}
	return n - 1
}

func GrowingPlantC(upSpeed, downSpeed, expected int) int {
	n := 1
	for {
		reached := upSpeed + (n-1)*(upSpeed-downSpeed)
		if reached >= expected {
			break
		}
		n++
	}
	return n
}

func GrowingPlantD(upSpeed, downSpeed, expected int) int {
	return (expected - downSpeed) / (upSpeed - downSpeed)
}

func GrowingPlant(u, d, e int) int {
	return GrowingPlantD(u, d, e)
}