Вопрос по информатике:
Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(3)?
void F(int n)
{
cout << n;
if (n > 1)
{
F(n - 1);
F(n - 3);
}
}
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 13.05.2015 06:33
- Информатика
- remove_red_eye 6137
- thumb_up 36
Ответы и объяснения 2
В данном задании при вызове функции сразу выводится "n", независимо от условия "if (n > 1)". Проще всего нарисовать дерево.
Разберем построчно, не считая фигурных скобок:
1а. Вызываем F(3).
2а. Выводится "3" (на выводе: 3).
3а. Так как выполняется условие "if (n > 1)" (3 больше 1), то от F(3) идет две функции:
F(3-1) = F(2);
F(3-3) = F(0);
1б. Приступаем к F(2).
2б. Выводится "2" (на выводе: 3, 2).
3б. Так как выполняется условие "if (n > 1)" (2 больше 1), то от F(2) идет две функции:
F(2 - 1) = 1;
F(2 - 3) = -1;
1в. Вызывается F(1).
2в. Выводится "1" (на выводе: 3, 2, 1).
3в. Так как не выполняется условие "if (n > 1)" (1 не больше 1), то вызов прекращается и идет к F(-1).
1г. Вызывается F(-1).
2г. Выводится "-1" (на выводе: 3, 2, 1, -1).
3г. Так как не выполняется условие "if (n > 1)" (-1 не больше 1), то вызов прекращается и идет к F(0).
1д. Вызывается F(0).
2д. Выводится "0"(на выводе: 3, 2, 1, -1, 0).
3д. Так как не выполняется условие "if (n > 1)" (0 не больше 1), то вызов прекращается.
Итого, вывод: 3, 2, 1, -1, 0.
Суммируем данные цифры: 3 + 2 + 1 - 1 + 0 = 5.
Ответ: 5.
- 15.05.2015 20:48
- thumb_up 32
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.