Как преобразовать список в число в python, используя только рекурсию

#python

Вопрос:

 def listIntoNumber(list,base):  //Enter code Here  Print(listIntoNumber([1,2,3,2,9],1) # It should return 12329  

Этот приведенный выше метод listIntoNumber должен быть заполнен повторно

Комментарии:

1. что вы пытались сделать, чтобы решить эту проблему?

2. что делать, если listIntoNumber переваривает число.

3. В чем заключается логика base ? Должно ли это быть 10 вместо 1 этого ?

4. Подсказка: предположим, что вы можете преобразовать список длины n . Как вы могли бы использовать эту возможность для преобразования списка длины n 1 ?

Ответ №1:

Достаточно просто, если в списке есть один элемент, верните его, в противном случае умножьте первый элемент на основание в степени длины списка минус 1 и добавьте результат рекурсивного вызова к остальной части списка.

nb. Я полагаю, вы имели в виду базу 10, база 1 на самом деле не имеет смысла 😉

 def listIntoNumber(lst, base):  assert len(lst) gt; 0  if len(lst) == 1:  return lst[0]  return lst[0]*base**(len(lst)-1)   listIntoNumber(lst[1:], base)  print(listIntoNumber([1,2,3,2,9], 10)) # 12329  print(listIntoNumber([1,0,0,1,0], 2)) # 18  

Комментарии:

1. Действительно ли выполнение домашних заданий для них помогает им учиться?

2. @JohnColeman здесь не написано, что это домашнее задание, если это так (вероятно), в любом случае есть так много возможностей найти ответы, что на них лежит ответственность за то, чтобы не испортить/обмануть их образование

Ответ №2:

Я предполагаю, что база-это текущее число

 def listIntoNumber(lst,base):  if len(lst)==0:  return base  base=base lst[0]*(10**(len(lst)-1))  print(base)  lst.pop(0)   return listIntoNumber(lst,base)  print(listIntoNumber([1,2,3,2,9],0))  

Комментарии:

1. Это имеет побочный эффект уничтожения исходного списка. Кроме того, более вероятно, что база является базой целевой системы счисления, хотя ОП не был ясен в этом вопросе.