Top.Mail.Ru
Ответы

Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n.

Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n. Вычисление факториала организовать в функции n!=1*2*3*4...n Язык C++ Буду благодарен очень

По дате
По рейтингу
Аватар пользователя
Новичок

cyberforum точка ru/cpp-beginners/thread229129.html
#include (тут надо iostream)

int fact(int n)
{
for (int i = n - 1; i > 1; --i)
n *= i;

return n == 0 || n == 1? 1 : n;
}

int main()
{
int sum = 0;

for (int i = 1; i <= 9; ++i)
sum += fact(i);

cout << "Sum = " << sum << endl;

return 0;
}

Аватар пользователя
Искусственный Интеллект

По условию - невыполнимо.
"Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n."
К - не факториал, 2 - не нечетное число...

Аватар пользователя
Высший разум

#include <iostream>
unsigned long fct(unsigned long n){
 unsigned long r = 1;
 while (n)
  r *= n--;
 return r;
}
int main(){
 for(unsigned long n, k = 0, i = scanf("%u", &n); i <= n? 1 : (0, printf("K = %u\n", k), n = 0); k += fct(i), i += 2);
}

Аватар пользователя
Мудрец

    РЕШЕНИЕ ПРЕДЛОЖЕНО ВЫШЕ !

  Очень жаль, что условие задания такое неоптимальное: для каждого члена ряда вызывается функция, которая вычисляет факториал от начала до конца! Такая программа работает безбожно медленно.

  Но ) это условие можно обойти, если добавить в функцию второй параметр ( должен быть ссылочного типа, например unsigned long long & ). Пусть функция сохраняет текущее / принимает предыдущее вычисленное значение во втором параметре. Такая функция будет работать ГОРАЗДО быстрее!!!