Hướng dẫn sum positive numbers python recursion - tổng các số dương phép đệ quy python

0

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm thế nào để sử dụng hàm đệ quy để đếm tổng của các yếu tố dương của danh sách?

Tôi không chắc làm thế nào để đi về nó? Tôi biết cách thực hiện mà không cần sử dụng chức năng đệ quy:

sum=0
for i in range(len(List)):
    if List[i]>0:
        sum=sum+List[i]

Hỏi ngày 3 tháng 4 năm 2017 lúc 6:38Apr 3, 2017 at 6:38

Hướng dẫn sum positive numbers python recursion - tổng các số dương phép đệ quy python

Sunnysunnysunny

111 huy hiệu bạc2 huy hiệu đồng1 silver badge2 bronze badges

3

Bạn cần chia vấn đề, thành bước 'hiện tại' và phần còn lại để được xử lý bằng đệ quy. Bạn cũng cần xác định khi nào nên kết thúc đệ quy.

  • Bước hiện tại là xác định tổng số trong bước này. Đó là giá trị hiện tại hoặc 0 nếu giá trị nhỏ hơn 0.
  • Phần còn lại đang tính tổng giá trị hiện tại cho cuộc gọi đệ quy cho phần còn lại của danh sách.
  • Bạn kết thúc đệ quy khi một danh sách trống được thông qua; Tổng của một danh sách trống luôn là 0.

Cuối cùng, điều đó cho:

def recursive_positive_sum(l):
    # end recursion for an empty list
    if not l:
        return 0
    # get a value
    value = l[0]
    if value < 0:
        value = 0
    # recurse, sum the value with the remainder
    return value + recursive_positive_sum(l[1:])

Chúng ta có thể sử dụng

def recursive_positive_sum(l):
    # end recursion for an empty list
    if not l:
        return 0
    # get a value
    value = l[0]
    if value < 0:
        value = 0
    # recurse, sum the value with the remainder
    return value + recursive_positive_sum(l[1:])
0 để có được giá trị hoặc 0 và nội tuyến rằng:

def recursive_positive_sum(l):
    if not l:
        return 0
    return max(l[0], 0) + recursive_positive_sum(l[1:])

Demo:

>>> def recursive_positive_sum(l):
...     if not l:
...         return 0
...     return max(l[0], 0) + recursive_positive_sum(l[1:])
...
>>> recursive_positive_sum([])
0
>>> recursive_positive_sum([-42])
0
>>> recursive_positive_sum([-42, 10, -81, 100])
110

Đã trả lời ngày 3 tháng 4 năm 2017 lúc 6:52Apr 3, 2017 at 6:52

Martijn Pieters ♦ Martijn PietersMartijn Pieters

992K277 Huy hiệu vàng3906 Huy hiệu bạc3254 Huy hiệu đồng277 gold badges3906 silver badges3254 bronze badges

Đây có thể là một trong những việc làm điều đó.

def fun(l):
    if len(l)==0:
        return 0
    num = l.pop()
    if num > 0:
        return num + fun(l)
    return fun(l)

nhưng hãy cẩn thận. Chức năng này phá hủy danh sách đã chuyển cho nó. Vì vậy, hãy tạo một bản sao danh sách của bạn trước khi chuyển nó cho chức năng hoặc:

def fun(l):
    if len(l)==0:
        return 0
    if len(l)==1:
        return l[0]
    num = l[0]
    if num > 0:
        return num + fun(l[1:])
    return fun(l[1:])

Đã trả lời ngày 3 tháng 4 năm 2017 lúc 7:13Apr 3, 2017 at 7:13

Hướng dẫn sum positive numbers python recursion - tổng các số dương phép đệ quy python

S.DoeS.DoeS.Doe

Phù hiệu đồng 391010 bronze badges

Thực hiện hàm SUM_POSITIVE_NUMBERS, dưới dạng hàm đệ quy trả về tổng của tất cả các số dương giữa số N nhận được và 1. [Đã giải quyết]

def sum_positive_numbers(n):
  if n <= 1:
       return n
  return n + sum_positive_numbers(n-1)

print(sum_positive_numbers(3)) # Should be 6
print(sum_positive_numbers(5)) # Should be 15

Hướng dẫn sum positive numbers python recursion - tổng các số dương phép đệ quy python

Coder hăng hái

3.6179 Huy hiệu vàng27 Huy hiệu bạc49 Huy hiệu đồng9 gold badges27 silver badges49 bronze badges

Đã trả lời ngày 23 tháng 5 năm 2020 lúc 9:58May 23, 2020 at 9:58

Hướng dẫn sum positive numbers python recursion - tổng các số dương phép đệ quy python

Là một người học mới không có đệ quy, tôi sẽ viết thêm một vài dòng mã như sau. Đây là vấn đề thêm các con số cho đến n.

def sum_positive_numbers(n):
    # Initialise variables
    sum=0
    i=1
    while i

Đã trả lời ngày 10 tháng 10 năm 2020 lúc 7:05Oct 10, 2020 at 7:05

1

Thực hiện hàm sum_positive_numbers, như một hàm đệ quy trả về tổng của tất cả các số dương giữa số n nhận được và 1. Ví dụ, khi n là 3, nó sẽ trả về 1+2+3 = 6 và khi n là 5 Trả về 1+2+3+4+5 = 15.

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

#sử dụng đệ quy
defsum_positive_numbers (n): sum_positive_numbers(n):
Ifn n <= 1:
trở lại n
return+sum_positive_numbers (n-1) n + sum_positive_numbers(n-1)
in (sum_positive_numbers (3)) # nên là 6(sum_positive_numbers(3)) # Should be 6
in (sum_positive_numbers (5)) # nên là 15(sum_positive_numbers(5)) # Should be 15
#Sử dụng các chức năng bình thường
defsum_positive_numbers (n): sum_positive_numbers(n):
sums=0 = 0
Ifn v in range(1,n+1):
sums+=v += v
trở lại sums
in (sum_positive_numbers (3)) # nên là 6(sum_positive_numbers(3)) # Should be 6
in (sum_positive_numbers (5)) # nên là 15(sum_positive_numbers(5)) # Should be 15

Làm thế nào để bạn tìm thấy tổng của một số trong đệ quy trong Python?

Tổng số của một số sử dụng đệ quy trong Python..
Xác định chức năng đệ quy lấy một số làm đối số ..
Lấy một số từ người dùng và chuyển nó làm đối số cho một hàm đệ quy ..
Trong hàm, đặt điều kiện cơ sở rằng nếu số bằng không, hãy trả lại danh sách được hình thành ..

Làm thế nào để bạn tìm thấy tổng số n trong đệ quy?

Đưa ra một số N, để tính tổng, chúng ta sẽ sử dụng một hàm đệ quy recsum (n).Basecondition: Nếu nuse a recursive function recSum(n). BaseCondition: If n<=1 then recSum(n) returns the n. Recursive call: return n + recSum(n-1).

Tổng đệ quy trong Python là gì?

Tổng chữ số đệ quy là gì?Python tổng hợp đệ quy là mã thông qua đó một hàm đệ quy, nghĩa là một hàm tự gọi, được sử dụng để liên tục lặp lại và cung cấp tổng n số tự nhiên.the code through which a recursive function, that is, a function that calls itself, is used to continuously iterate and provide the sum of n natural numbers.

Các chức năng đệ quy đưa ra ba ví dụ là gì?

Các ví dụ đơn giản về một hàm đệ quy bao gồm giai thừa, trong đó một số nguyên được nhân với chính nó trong khi được giảm dần.Nhiều chức năng tự tham chiếu khác trong một vòng lặp có thể được gọi là các hàm đệ quy, ví dụ, trong đó N = N + 1 đưa ra một phạm vi hoạt động.the factorial, where an integer is multiplied by itself while being incrementally lowered. Many other self-referencing functions in a loop could be called recursive functions, for example, where n = n + 1 given an operating range.