Consider the following class, implemented in Python:
class A(object):
def __init__(self, a=None, b=None):
self.a = a
self.b = b
This class can be used to create lists, as demonstrated in this example:
#the list 1, 2, 3
one_two_three = A(1, A(2, A(3)))
one_two_three.a #returns 1
Jenny wrote the below function to create a list of 1000 elements and return a sublist of the last 163 elements. To get the correct answer, she must call it with inputs n and m: get_sublist_last_163(n, m).
n and m are non-negative integers. What is the value of n + m?
def get_sublist_last_163(N, M):
# create a list of 1000 elements
big_list = A(1000)
i = 999
while (i>0):
big_list = A(i, big_list)
i = i - 1
# get a sublist of the last 163 items
sublist_last_163 = big_list
# call "b" N times
i = 0
while (i < N):
sublist_last_163 = sublist_last_163.b
i = i + 1
# call "a" M times
i = 0
while (i < M):
sublist_last_163 = sublist_last_163.a
i = i + 1
return sublist_last_163