#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. Это имеет побочный эффект уничтожения исходного списка. Кроме того, более вероятно, что база является базой целевой системы счисления, хотя ОП не был ясен в этом вопросе.