Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как работает рекурсия? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как посчитать количество повторений каждой из цифр в числе N*N? http://www.cyberforum.ru/cpp-beginners/thread50914.html
я очень плохо ориентируюсь на С++.Такой вопрос:можно числа переводить в строки?И если нет,то как осуществить решение задачи?Помогите, пожалуйста
C++ FToS >float to string Нужно перевести число из double в std::string. что-то типа этого string FToS(double value, int precision); sprintf,printf и и подобные штуки не пойдут, т.к критично по времени. ... http://www.cyberforum.ru/cpp-beginners/thread50879.html
C++ Задача про слона 0о
Нам задали прикольную задачу. От пункта А до пункта Б 12км. На каждом километре есть склад. Склады заполнены бананами(кол-во произвольное т.е. рандом или введено с клавы). Из пункта А в пункт Б...
C++ SinCos
странно но в math.h нету SinCos'а :(. Попробовал переписать сам. typedef long double Extended; Extended SinCos(Extended &Theta,Extended &Sin,Extended &Cos) { _asm{ FLD Theta FSINCOS...
C++ Реестр операционной системы Windows http://www.cyberforum.ru/cpp-beginners/thread50819.html
Лабораторная работа Цель: Получение навыков использования функций API среды WIN32 для организации работы с системным реестром. Задание: Написать программу. С помощью нее создать подраздел по пути:...
C++ Проблемы с динамическими структурами Задача:В составе программы описать функцию, которая включает в упорядоченный по возрастанаию список новое значение, введенное с клавиатуры, таким образом, чтобы не нарушать упорядоченность. Моё... подробнее

Показать сообщение отдельно
Golovastik
11 / 11 / 0
Регистрация: 25.05.2009
Сообщений: 435

Как работает рекурсия? - C++

14.09.2009, 23:28. Просмотров 963. Ответов 13
Метки (Все метки)

Ребята! Вот дошёл до темы рекурсия, и вроде тему из школы роходили, но смотрю на программу, и что-то не могу понять вот эту строку:
C++
1
answer = factr(n-1)*n;
из кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int factr(int n);
 
int main()
{
    setlocale(0,"");
    
    //Использование рекурсивной версии
    cout<<"Факториал числа 4 равен "<<factr(4)<<'\n';
 
cin.get();
}
 
int factr(int n)
{
    int answer;
    if(n == 1) return(1);
    answer = factr(n-1)*n;
    return(answer);
}
Смотрите, за первым разом, если смотреть на строку answer = factr(n-1)*n; целой переменной answer присваивается (4-1)*4 = 12, за вторым: (3-1)*3 = 6 , третим разом: (2-1)*2 = 2

12*6*2 = ........как тогда получается результат 24 ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru