Я новичок в 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., это неверно </li>
- Если m> n //, если 5 больше, чем количество значений в массиве, которое равно 7, то это неверно
- Если k> m //, если 2> 5, это неверно
Таким образом, эта функция отобразит строку 3. В строке 3 написано:
- return
a[k]
, равное a[2]
, которое является вторым значением массива, равным 6. Поэтому возьмите 6 и добавьте его к (2+1, 5, a[1].....,a[n])
Что я сделал там правильно? Если так, как я узнаю, что такое a[n]
? Я должен найти это? Каков будет конечный результат всего этого?