Given the code for the recursive algorithm that sums the sequence of numbers from one to one hundred:

def sum(n):
if n < 1:
return 0
else:
return n + sum(n - 1)
result = sum(100)
print(result)
How could the code be altered to print the sum of the first 10 numbers in the sequence 3n−1?
(1 point)
Responses

def sum(n):
if n == 0:
return 0
else:
return 3 * n - 1 + sum(n - 1)
result = sum(10)
print(result)
def sum(n): if n == 0: return 0 else: return 3 * n - 1 + sum(n - 1) result = sum(10) print(result)

def sum(n):
if n == 0:
return 0
else:
return 3 * (n - 1) + sum(n - 1)
result = sum(10)
print(result)
def sum(n): if n == 0: return 0 else: return 3 * (n - 1) + sum(n - 1) result = sum(10) print(result)

def sum(n):
if n == 0:
return 0
else:
return 3 * n - 1 + sum(n - 1)
result = sum(100)
print(result)
def sum(n): if n == 0: return 0 else: return 3 * n - 1 + sum(n - 1) result = sum(100) print(result)

def sum(n):
if n <= 0:
return 0
else:
return n + sum(3 * n - 1)
result = sum(10)
print(result)
def sum(n): if n <= 0: return 0 else: return n + sum(3 * n - 1) result = sum(10) print(result)

1 answer

To modify the given recursive algorithm so that it sums the first 10 numbers in the sequence \(3n - 1\), we need to use the correct form of the sum function. The correct function should calculate the elements of the sequence \(3n - 1\) for values of \(n\) from 1 to 10.

The correct rewrite of the function would be:

def sum(n):
    if n == 0:
        return 0
    else:
        return 3 * n - 1 + sum(n - 1)

result = sum(10)
print(result)

This function correctly produces the sum of the sequence \(3n - 1\) when \(n\) ranges from 1 to 10.

So, the correct response from the options given is:

def sum(n):
    if n == 0:
       return 0
    else:
       return 3 * n - 1 + sum(n - 1)
result = sum(10)
print(result)

This correctly computes the sum of the first 10 elements of the sequence defined by \(3n - 1\).