נתונה הפעולה הרקורסיביות what המקבלת רשימה מספרים שלמים הממוינת בסדר עולה ומספר שלם וחיובי num:
נתונה הפעולה הרקורסיביות what המקבלת רשימה מספרים שלמים הממוינת בסדר עולה ומספר שלם וחיובי num:
def what(arr, num, found = False):
if len(arr)<2 :
return found
if arr[0] + arr[-1] < num :
return what(arr[1:], num, found)
if arr[0] + arr[-1] > num:
return what(arr[: -1], num, found)
print(arr[0], arr[-1])
return what(arr[1:-1], num, True)
סעיף א
נתונה הרשימה הבאה של מספרים שלמים: arr = [2,4,7,13,18,21,30] עקבו אחרי זימון what(a, 20) רשמו את תוצאת הזימון. יש להראות מעקב!
סעיף ב
מה מבצעת הפעולה what באופן כללי?
סעיף ג
נתונה הפעולה הרקורסיביות why המקבלת רשימה מספרים שלמים הממוינת בסדר עולה ומספר שלם וחיובי num:
def why(arr, num, count = 0, left = 0, right = 1):
if left == len(arr)-1 or right == len(arr):
return count
if arr[right] - arr[left] < num :
return why(arr, num, count, left, right+1)
if arr[right] - arr[left] > num:
return why(arr, num, count, left+1, right)
print(arr[left], arr[right])
return why(arr, num, count+1, left+1, right+1)
נתונה הרשימה הבאה של מספרים שלמים: arr=[2,4,7,13,18,21,30] האם קיים מספר num שעבורו זימון why(a, num) יחזיר 2? אם כן, תנו דוגמה למספר כזה וציינו מה יהיה הפלט, ולא – הסבירו למה הדבר אינו אפשרי.
סעיף ד
מה מבצעת הפעולה why באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.