C/C++
Найти сумму факториала 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;
}
#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;
}
#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 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);
}
По условию - невыполнимо.
"Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n."
К - не факториал, 2 - не нечетное число...
"Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n."
К - не факториал, 2 - не нечетное число...
Umit Karimow
понятно же что крендель тупо неправильно написал. подразумевалось:
сумма факториалов нечётных чисел от 1 до N
сумма факториалов нечётных чисел от 1 до N
Даур Ережепов
Так вот и я о том, что "тупо неправильно".
А если хочешь, чтобы тебе помогли, надо постараться хоть вопрос задать не спустя рукава. Это просто неуважение к отвечающим.
А если хочешь, чтобы тебе помогли, надо постараться хоть вопрос задать не спустя рукава. Это просто неуважение к отвечающим.
РЕШЕНИЕ ПРЕДЛОЖЕНО ВЫШЕ !
Очень жаль, что условие задания такое неоптимальное: для каждого члена ряда вызывается функция, которая вычисляет факториал от начала до конца! Такая программа работает безбожно медленно.
Но ) это условие можно обойти, если добавить в функцию второй параметр ( должен быть ссылочного типа, например unsigned long long & ). Пусть функция сохраняет текущее / принимает предыдущее вычисленное значение во втором параметре. Такая функция будет работать ГОРАЗДО быстрее!!!
Очень жаль, что условие задания такое неоптимальное: для каждого члена ряда вызывается функция, которая вычисляет факториал от начала до конца! Такая программа работает безбожно медленно.
Но ) это условие можно обойти, если добавить в функцию второй параметр ( должен быть ссылочного типа, например unsigned long long & ). Пусть функция сохраняет текущее / принимает предыдущее вычисленное значение во втором параметре. Такая функция будет работать ГОРАЗДО быстрее!!!
Олег Кондаков
Можно даже использовать функцию возвращающую void, а значение факториала ловить через второй параметр.
Олег Кондаков
3! = 1! * 2 * 3
5! = 3! * 4 * 5
7! = 5! * 6 * 7
9! = 7! * 8 * 9
•••
n! = (n – 2)! * (n – 1) * n
(n – 2)! не понадобится вычислять заново, если сохранить результат для предыдущего n
5! = 3! * 4 * 5
7! = 5! * 6 * 7
9! = 7! * 8 * 9
•••
n! = (n – 2)! * (n – 1) * n
(n – 2)! не понадобится вычислять заново, если сохранить результат для предыдущего n
Umit Karimow
кстати да. не надо лишний раз перемножать
Красов Денис Сергеевич
Согласен (можно было просто написать про кеширование).
Но согласитесь, если человек попросил помощи с таким заданием, то ему рано заниматься оптимизацией).
Кстати, раз уж мы заговорили про оптимизацию, тогда вообще переписать алгоритм с помощью итераций
Но согласитесь, если человек попросил помощи с таким заданием, то ему рано заниматься оптимизацией).
Кстати, раз уж мы заговорили про оптимизацию, тогда вообще переписать алгоритм с помощью итераций
Похожие вопросы
- Для произвольного массива заполнить его числами от 1 до n
- Даны число N и последовательность из N целых чисел. Найти количество и сумму тех чисел, которые нечетны и положительны.
- Найти сумму всех n-значных чисел (1 ≤n ≤ 4).
- Найти сумму нечетных элементов, стоящих на нечетных местах (то есть имеющих нечетные номера).
- Найти сумму и количество случайных элементов последовательности размером n, кратных числу k
- Найти сумму цифр чисел, записанных в файл
- Хелпаните плиз, надо код перестроить на N вещестные числа и для вычесления гометрической прогрессии.
- Из двух чисел с разной четностью вывести на экран нечетное число.
- Вывести на экран n первых простых чисел, начиная с единицы. n вводится с клавиатуры.
- Напишите программу, которая выводит таблицу факториалов от 1 до 10. c++
Дело в том, что функция Факториал является резко возрастающей, т. е. даже при сравнительно небольших значениях параметра возвращаемое значение может быть ОГРОМНЫМ