เมื่อจำเป็นต้องหาผลรวมของรายการซ้อนโดยใช้เทคนิคการเรียกซ้ำ ผู้ใช้จะใช้วิธีที่กำหนด ซึ่งจะรับรายการเป็นพารามิเตอร์
การเรียกซ้ำจะคำนวณเอาต์พุตของบิตขนาดเล็กของปัญหาที่ใหญ่กว่า และรวมบิตเหล่านี้เข้าด้วยกันเพื่อแก้ปัญหาที่ใหญ่กว่า
สามารถใช้รายการเพื่อเก็บค่าที่แตกต่างกัน (เช่น ข้อมูลของประเภทข้อมูลใดๆ เช่น จำนวนเต็ม จุดลอยตัว สตริง และอื่นๆ)
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสำหรับสิ่งเดียวกัน -
def recursion_sum(my_list): my_total = 0 for elem in my_list: if (type(elem) == type([])): my_total = my_total + recursion_sum(elem) else: my_total = my_total + elem return my_total my_list = [[2,3], [7,9], [11,45], [78,98]] print("The list elements are :") print(my_list) print( "The sum is :") print(recursion_sum(my_list))
ผลลัพธ์
The list elements are : [[2, 3], [7, 9], [11, 45], [78, 98]] The sum is : 253
คำอธิบาย
- มีการกำหนดเมธอดชื่อ 'recursion_sum' โดยมีรายการเป็นตัวกำหนดพารามิเตอร์
- ในขั้นต้น ตัวแปรถูกกำหนดให้เป็น 0
- องค์ประกอบในรายการจะถูกทำซ้ำ และหากประเภทตรงกัน องค์ประกอบในรายการจะถูกเพิ่ม และเมธอดจะถูกเรียกอีกครั้ง
- มิฉะนั้น องค์ประกอบจะถูกเพิ่มเข้าไปในตัวแปร
- ตัวแปรนี้แสดงเป็นเอาต์พุตบนคอนโซล
- นอกฟังก์ชัน การดำเนินการด้านล่างเกิดขึ้น -
- รายการซ้อนถูกกำหนด และแสดงบนคอนโซล
- เมธอดนี้เรียกโดยส่งรายการนี้เป็นพารามิเตอร์
- ผลลัพธ์จะแสดงบนคอนโซล