Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Рекурсивный вывод в C#

Обычник Ученик (108), открыт 8 часов назад
Что такое Foo(array, k + 1) что за значение там хранится? Откуда в нём 0, 7, 10?

static int Foo(int[] array, int k = 0)
{
if (k >= array.Length)
return 0;

int result = Foo(array, k + 1);

Console.WriteLine(result);
return array[k] + result;
}
static void Main()
{
int[] array = { 1, 3, 7 };

Console.WriteLine(Foo(array));
}
1 ответ
Jurijus Zaksas Искусственный Интеллект (445813) 37 минут назад
>Что такое Foo(array, k + 1)
Это просто вызов функции.

>что за значение там хранится?
Функции не хранят значения, они отображают область аргументов на область значений.

>Откуда в нём 0, 7, 10?
Такова область значений данной функции при заданных аргументах. Задай другие аргументы - получишь дугие значения.
Похожие вопросы