Автор Тема: Посмотрите.  (Прочитано 2311 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн влад2

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Посмотрите.
« : 29 Мая 2011, 18:21:15 »
Условие программы.
Составить рекурсивную функцию вычисления факториала. Пользуясь этой функцией распечатать таблицу факториалов от 1 до N и чтобы эта таблица с копировалась в файл отдельно.
Вот программа, покажите где ошибка и исправьте ее плиз и если нужно доделайте.

#include <iostream>
using namespace std;
int main()
int fartor (int n);
{int k;
for(k=0;k<14;k++)
cout<<"%d факториал =%d\n\r\n",k,faktor(k);
getch();
}
int fartor (int n);
int a;
if(n==1)
return 1;
a=faktor(n-1)*n;
return a;
}

Оффлайн PROSTDJ

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Посмотрите.
« Ответ #1 : 22 Июня 2011, 20:53:50 »
#include <iostream>
using namespace std;
 
long double fact(int N)
{
    if(N < 0) // если пользователь ввел отрицательное число
        return 0; // возвращаем ноль
    if (N == 0) // если пользователь ввел ноль,
        return 1; // возвращаем факториал от нуля - не удивляетесь, но это 1 =)
    else // Во всех остальных случаях
        return N * fact(N - 1); // делаем рекурсию.
}
вот вычисление факториала через рекурсию!!! работает правильно
 
int main()
{
    int N;
    setlocale(0,""); // Включаем кириллицу
    cout << "Введите число для вычисления факториала: ";
    cin >> N;
    cout << "Факториал для числа " << N << " = " << fact(N) << endl << endl; // fact(N) - функция для вычисления факториала.
    return 0;
}

 

Посмотрите где ошибка? должно быть h=0.010

Автор mike37

Ответов: 0
Просмотров: 2350
Последний ответ 01 Ноября 2011, 16:12:14
от mike37