Вызовы Python: найдите, содержит ли он аддитивную последовательность или нет
Задачи Python - 1: Упражнение 17 с решением
Напишите программу на Python, чтобы определить, содержит ли она аддитивную последовательность или нет.
Аддитивная последовательность - это последовательность чисел, в которой сумма первых двух чисел равна третьей.
Примечание. Числа в аддитивной последовательности не могут иметь ведущих нулей.
Объяснение:
Пример решения : -
Код Python:
class Solution(object):
# DFS: iterative implement.
def is_additive_number(self, num):
length = len(num)
for i in range(1, int(length/2+1)):
for j in range(1, int((length-i)/2 + 1)):
first, second, others = num[:i], num[i:i+j], num[i+j:]
if self.isValid(first, second, others):
return True
return False
def isValid(self, first, second, others):
if ((len(first) > 1 and first[0] =="0") or
(len(second) > 1 and second[0] =="0")):
return False
sum_str = str(int(first) + int(second))
if sum_str == others:
return True
elif others.startswith(sum_str):
return self.isValid(second, sum_str, others[len(sum_str):])
else:
return False
if __name__ =="__main__":
print(Solution().is_additive_number('66121830'))
print(Solution().is_additive_number('51123'))
print(Solution().is_additive_number('235813'))
Пример вывода:
Правда Ложь Правда
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Python, чтобы несколько раз добавлять цифры положительного целого числа до тех пор, пока в результате не появится одна цифра.
Далее: Напишите программу на Python, чтобы перевернуть цифры целого числа.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования