Найти сумму целых чисел введёных с клавиатуры
Найти сумму целых чисел введёных с клавиатуры, без использования for, while, sum, map, reduce, fiter, import, eval, exec, compile, single
list1 = list(map(int,input().split()))
suma = 0
for range1 in range(len(list1)):
suma += list1[range1]
print(suma)
Я смог сделать, но только с for...
Может кто-нибудь знает как это сделать?
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
например так:
arr = list(map(int,input().split()))
def add(arr, res = 0):
return res if len(arr) == 0 else (res + arr[0] + add(arr[1:], res))
print(add(arr))
вариант 2 (как вариант 1, только без излишеств)
def add(arr):
return arr[0] if len(arr) == 1 else (arr[0] + add(arr[1:]))
print(add(arr))
вариант 3:
если нельзя даже данные получать с этими командами, тогда так:
def add(arr):
return int(arr[0]) if len(arr) == 1 else (int(arr[0]) + add(arr[1:]))
print(add(input().split()))
вариант 4 (как и вариант 3, но покороче):
def add(arr):
return (int(arr[0]) + add(arr[1:])) if arr else 0
print(add(input().split()))
вариант 5 (как и вариант 4, но короче на 1 (!!!) букву)
def add(arr):
return (int(arr.pop()) + add(arr)) if arr else 0
print(add(input().split()))
Автор решения: Danis
→ Ссылка
можно с помощью рекурсия
def f(arr):
if arr == []:
return 0
return int(arr[0]) + f(arr[1:])
print(f(input().split()))