Hello everyone.

I have a simple challenge for you today. In mathematics, the formula for finding the sum to infinity of a geometric sequence is: 



**ONLY IF** `-1 < r < 1`

where:

* `a` is the first term of the sequence
* `r` is the common ratio of the sequence (calculated by dividing one term in the sequence by the previous term)

For example: `1 + 0.5 + 0.25 + 0.125 + ... = 2`

Your challenge is to calculate the sum to infinity of the given sequence. The solution must be rounded to 3 decimal places.

If there are no solutions, for example if `r` is out of the above boundaries, return `"No Solutions"`.

Hope you enjoy, let me know of any issues or improvements!

Difficulty: introductory

Starter code:

def sum_to_infinity(sequence):
	

Solutions:
def sum_to_infinity(sequence):
    return round(sequence[0]/(1-(sequence[1]/sequence[0])), 3) if abs(sequence[1]/sequence[0]) < 1 else "No Solutions"

def sum_to_infinity(sequence):
    sequence = [float(x) for x in sequence]
    a, r = sequence[0], sequence[1] / sequence[0]
    if -1 < r < 1:
        return round(a / (1 - r), 3)
    return "No Solutions"

def sum_to_infinity(sequence):
    x, y = sequence[:2]
    return round(x*x/(x-y), 3) if abs(x) > abs(y) else "No Solutions"

def sum_to_infinity(sequence):
    r = sequence[1] / sequence[0]
    if abs(r) < 1:
        return round(sequence[0] / (1 - r), 3)
    return "No Solutions"

def sum_to_infinity(arr):
    a, b = arr[:2]
    c = b / a
    return round(a / (1 - c), 3) if -1 < c < 1 else "No Solutions"

def sum_to_infinity(seq):
    if len(seq) < 2:
        return 'No Solutions'
    r = seq[1] / seq[0]
    if r >= 1 or r <= -1:
        return 'No Solutions'
    return 1 if seq[0] == seq[1] else round(seq[0]/(1-r), 3)

def sum_to_infinity(A):
    r = A[1] / A[0]
    if abs(r) >= 1:
        return "No Solutions"
    else:
        return round(A[0] / (1 - r), 3)

sum_to_infinity = lambda l: 'No Solutions' if abs(l[1]) >= abs(l[0]) else round(l[0] / (1 - l[1] / l[0]), 3)

def sum_to_infinity(sequence):
    a=sequence[0]
    r=sequence[1]/a
    return round(a/(1-r),3) if -1<r<1 else "No Solutions"

def sum_to_infinity(seq):
    r=seq[1]/seq[0]
    return round(seq[0]/(1-r),3) if -1<r<1 else "No Solutions"

def sum_to_infinity(a):
    return round(a[0] / (1 - a[1]/a[0]), 3) if -1 < a[1]/a[0] < 1 else 'No Solutions'


def sum_to_infinity(sequence):
    r = sequence[2]/sequence[1]
    if not -1 < r < 1:
        return "No Solutions"
    return round(sequence[0]/(1-r),3)

def sum_to_infinity(sequence):
    a = sequence[0]
    r = sequence[1]/sequence[0]
    #checking r is in range
    if r<=-1 or r>=1: #r mustn't be higher or equal than one and lower or equal minus one
        return "No Solutions"
    else: #there is formula to counting the sum of infinity geometric sequence
        return round(a/(1-r), 3) #rounded to 3 decimal places

def sum_to_infinity(l):
    return round(l[0]/(1- l[1]/l[0]),3) if l[1]/l[0] < 1 and l[1]/l[0] > -1 else 'No Solutions'

def sum_to_infinity(sequence):
    r = sequence[1] / sequence[0]
    if r <= -1 or r >= 1:
        return 'No Solutions'
    sum = sequence[0] / ( 1 - r )
    return round(sum, 3)

def sum_to_infinity(sequence):
    # Good Luck!
    sum = 0
    print(sequence)
    if(len(sequence)>1):
        r = sequence[1]/sequence[0]
        print(r)
        if r<=-1 or r>=1:
            return 'No Solutions'
        sum = round(sequence[0]/(1-r),3)
        return sum
    
    return sequence[0] 

def sum_to_infinity(sequence):
    r=sequence[1]/sequence[0]
    return round(sequence[0]/(1-r),3) if abs(r)<1 else 'No Solutions'

def sum_to_infinity(sequence):
    if sequence[1]/sequence[0]<1 and sequence[1]/sequence[0]>-1:
        return float(str(round(sequence[0]/(1-sequence[1]/sequence[0]),3)))
    return "No Solutions"

def sum_to_infinity(seq):
    r = seq[1]/seq[0]
    if not abs(r) < 1: 
        return "No Solutions"
    res = seq[0]/(1-r)
    return round(res, 3)

def sum_to_infinity(seq):
    r = seq[1]/seq[0]
    if not -1 < r < 1: 
        return "No Solutions"
    res = seq[0]/(1-r)
    return round(res, 3)