Ben psuedocode yeniyim ve sorun tüm parçaları bir araya koyarak yaşıyorum:
Burada girdiler iki tam sayılan ve tam bir dizi olan bir işlev foo adında tanımıdır 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])
Giriş tamsayı olduğunu varsayalım k=2ve m=5ve giriş dizisi, [5, 6, 2, 3, 4, 8, 2]. Foo hangi değeri döndürmektedir? Toplamıdır gösterim kullanılarak, Foo hesaplar için genel bir formül verir.
Bu, benim kafa zarar yapıyor. İşte ben bugüne kadar yaptık:
Satır 2 üç koşullu ifadeler vardır:
- k <1 2 <1..this false // eğer varsa
- 5 7 tadını değerlerin miktarından daha büyüktür, böylece, eğer m> n // Bu yanlış ise
- k> m // 2> 5 ise, bu yanlış ise
Yani bu fonksiyon hattını görüntüler 3. Hat 3 diyor ki:
- dönüş
a[k]olduğunua[2]Yani 6 alıp eklemek 6 dır dizinin, ikinci değer olan(2+1, 5, a[1].....,a[n])
Oraya doğru yaptıklarını mı? Eğer öyleyse, nasıl ne bileyim a[n]nedir? Bunu bulma olması gerekiyor? Bütün bu işlemlerin sonucunda ne olurdu?













