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

C++ Рекурсия - C++

Восстановить пароль Регистрация
 
polin0m
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 12
02.04.2016, 15:29     C++ Рекурсия #1
Через рекурсию) Если можно, то исправьте код)
http://www.cyberforum.ru/attachment....1&d=1459599977
Вложение 672269
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
float fact(int);
int main()
{ int n; float x;
setlocale(LC_ALL, "Russian");
cout«"Введите n "; cin»n;
cout«fact(n)«"\n";
return 0; }
float fact(int n)
{ float rez;
if (n==0)return 3.14/2;
if (n==1) return 1;
rez=(n-1)/(n*fact(n-2));
n--;
return rez;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2016, 15:29     C++ Рекурсия
Посмотрите здесь:

Рекурсия. C++
C++ Рекурсия
C++ Рекурсия //
Рекурсия C++
Рекурсия C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Serg_o_Grey
46 / 46 / 19
Регистрация: 29.03.2016
Сообщений: 260
02.04.2016, 15:38     C++ Рекурсия #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
using namespace std;
 
float fact(int);
int main()
{ 
    int n; 
    float x;
    setlocale(LC_ALL, "Russian");
    cout << "Введите n "; 
    cin >> n;
    cout << fact(n) << "\n";
    return 0; 
}
 
float fact(int n)
{ 
    float rez;
    if (n == 0) return 3.14/2;
    if (n == 1) return 1;
    rez = (n - 1) / (n * fact(n - 2));
    n--;
    return rez;
}
что исправлять-то?
polin0m
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 12
02.04.2016, 15:59  [ТС]     C++ Рекурсия #3
Программа для n>2 не правильно считает)
Serg_o_Grey
46 / 46 / 19
Регистрация: 29.03.2016
Сообщений: 260
02.04.2016, 16:04     C++ Рекурсия #4
не очень понимаю смысл этой программы
Stitch Igorek
 Аватар для Stitch Igorek
44 / 44 / 17
Регистрация: 02.04.2016
Сообщений: 300
Завершенные тесты: 1
02.04.2016, 16:10     C++ Рекурсия #5
если честно - я не соображу что программа считать должна

Добавлено через 3 минуты
особенно не понятно вот это
C++
1
2
3
rez = (n - 1) / (n * fact(n - 2));
    n--;
    return rez;
что бы ты не пытался посчитать, n у тебя дискрементируется уже на этапе выхода из рекурсии и никак не влияет на результат работы программы.
Aymurat
90 / 84 / 25
Регистрация: 07.11.2014
Сообщений: 572
Завершенные тесты: 5
02.04.2016, 16:11     C++ Рекурсия #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int factorial(int n);
int main()
{
int n;
cout<<"Enter n "; cin>>n;
cout<<factorial(n)<<"\n";
return 0; } 
int factorial(int n) {
    if (n < 0 ) {
        return 0;
    }
      return n ? n * factorial(n - 1) : 1;
  }
Yandex
Объявления
02.04.2016, 16:11     C++ Рекурсия
Ответ Создать тему
Опции темы

Текущее время: 14:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru