Είμαι νέος στο psuedocode, και είμαι έχοντας πρόβλημα βάζοντας όλα τα κομμάτια μαζί:
Εδώ είναι ο ορισμός μιας συνάρτησης που ονομάζεται foo των οποίων οι είσοδοι είναι δύο ακέραιοι και μια σειρά ακεραίων a[1] ... a[n].
1 Foo(k,m, a[1],...,a[n])
2 if (k < 1 or m > n or k > m) return 0
3 else return a[k] + Foo(k+1,m,a[1],...,a[n])
Ας υποθέσουμε ότι οι ακέραιοι εισόδου είναι k=2και m=5και η συστοιχία εισόδου περιέχει [5, 6, 2, 3, 4, 8, 2]. Τι αξία έχει επιστρέψει Foo; Χρησιμοποιώντας άθροιση σημειογραφία, δίνουν ένα γενικό τύπο για το τι υπολογίζει Foo.
Αυτό και μόνο κάνει κακό κεφάλι μου. Εδώ είναι αυτό που έκανα μέχρι τώρα:
Η γραμμή 2 έχει τρεις όρους δηλώσεις:
- Αν k <1 // αν 2 <1..this είναι ψευδής
- Αν το m> n // αν 5 είναι μεγαλύτερη από την ποσότητα των αξιών στον πίνακα, η οποία είναι 7, έτσι αυτό είναι ψευδές
- Αν k> m // αν 2> 5, αυτό είναι λάθος
Έτσι, η λειτουργία αυτή θα εμφανίσει γραμμή 3. Γραμμή 3 λέει:
- επιστροφή
a[k]η οποία είναιa[2]ποια είναι η δεύτερη αξία του πίνακα, η οποία είναι 6. Έτσι, ρίξτε 6 και προσθέστε το στο(2+1, 5, a[1].....,a[n])
Είναι ό, τι έχω κάνει σωστό εκεί πάνω; Αν ναι, πώς θα ξέρω τι a[n]είναι; Είμαι υποτίθεται ότι πρέπει να βρουν αυτό; Ποιο θα ήταν το τελικό αποτέλεσμα όλων αυτών;













