Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 48

Вычислить сумму: 2! + 4! + 6! + . +n!

09.10.2017, 13:46. Показов 1462. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вычислить сумму: 2! + 4! + 6! + ... +n!, где n ≤ 16 – четное число. (Тип значения функции LongInt.)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2017, 13:46
Ответы с готовыми решениями:

Вычислить сумму положительных и сумму отрицательных элементов вещественного массива C#
Здравствуйте, не могу разобраться с задачей "Вычислить сумму положительных и сумму отрицательных элементов вещественного массива C#" в...

Вычислить среднее арифметическое отрицательных чисел. Вычислить сумму элементов каждой строки
Помогите с реализацией задачи: Задать целочисленный двумерный массив NxM (значения N, M вводятся с клавиатуры, N<10, M<10). Программа...

Вычислить сумму
Вычислить сумму

15
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
09.10.2017, 14:29
99Fak99,
C#
1
2
3
4
5
6
7
public static UInt64 FactSum(UInt64 n) {
    UInt64 result = 0;
    UInt64 tmp = 1;
    for (UInt64 i = 1; i <= n; i++)     
         result += (tmp *= i); 
    return result;
}
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
09.10.2017, 17:44
woldemas, там факториалы только четных чисел
C#
1
2
3
4
5
6
7
public static UInt64 FactSum(UInt64 n) {
    UInt64 result = 0;
    UInt64 tmp = 1;
    for (UInt64 i = 2; i <= n; i+=2)     
         result += (tmp *= (i-1)*i); 
    return result;
}
1
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
09.10.2017, 18:21
rattrapper, точно, ну тогда i = 2 и i += 2
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
09.10.2017, 18:27
Почему никто не привел рекурсивный подход?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static int Fact( int n )
{
    if( ( n > 16 ) || ( n % 2 != 0 ) )
        throw new ArgumentException( "Error!" );
            
    if( n == 0 )
        return 0;
            
    int result = 1;
    for( int i = 1; i <= n; i++ )
        result *= i;
            
    return result + Fact( n - 2 );
}
2
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
09.10.2017, 19:04
Вот так вроде должно быть правильно:
C#
1
2
3
4
5
6
7
public static UInt64 FactSum(UInt64 n) {
    UInt64 result = 0;
    UInt64 tmp = 1;
    for (UInt64 i = 1; i <= n; i++)     
         result += (1 - (i % 2))*(tmp *= i); 
    return result;
}
2
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
09.10.2017, 19:26
Цитата Сообщение от Bretbas Посмотреть сообщение
Почему никто не привел рекурсивный подход?
C#
1
2
public static ulong f(ulong n, ulong u = 1)
    => n < 2 ? u - 1 : f(n - 2, 1 + (n - 1) * n * u);
5
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
09.10.2017, 19:50
Aael, достойно
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
10.10.2017, 10:27
Цитата Сообщение от Bretbas Посмотреть сообщение
Почему никто не привел рекурсивный подход?
потому, что при рекурсивном подходе для каждого слагаемого факториал считается заново, а если считать итерационно - можно использовать ранее посчитанные значения
1
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
10.10.2017, 14:26
Цитата Сообщение от rattrapper Посмотреть сообщение
при рекурсивном подходе для каждого слагаемого факториал считается заново
необязательно.
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
10.10.2017, 15:39
Цитата Сообщение от rattrapper Посмотреть сообщение
потому, что при рекурсивном подходе для каждого слагаемого факториал считается заново, а если считать итерационно - можно использовать ранее посчитанные значения
кто сказал?)))
0
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
11.10.2017, 19:16
Напишу самый элементарный код, без очень крутых фич...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public int Fact(int x)
{
   kol=1;
   for (int i=1;i<=x;i++)kol=kol*i;
   return kol;
}
 
public int Sum(int n)
{
  int i=2;
  kol=0;
  while (i<=n)
  { 
     kol+=Fact(i);
     i+=2;
   }
}
Добавлено через 2 минуты
Цитата Сообщение от Bretbas Посмотреть сообщение
Почему никто не привел рекурсивный подход?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static int Fact( int n )
{
    if( ( n > 16 ) || ( n % 2 != 0 ) )
        throw new ArgumentException( "Error!" );
            
    if( n == 0 )
        return 0;
            
    int result = 1;
    for( int i = 1; i <= n; i++ )
        result *= i;
            
    return result + Fact( n - 2 );
}
В данном случае, итеративный подход оптимальнее, нежели рекурсивный.
1
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
11.10.2017, 19:42
C#
1
2
3
4
            long sum = 0, tmp = 1, i = 1;
            while(i <= n)
                sum += tmp *= i++ * i++;
            Console.WriteLine(sum);
1
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
12.10.2017, 13:53
Цитата Сообщение от FateOri Посмотреть сообщение
кто сказал?)))
я конкретно про код, приведенный выше. ну и в любом случае, итерационное решение этой задачи будет понятнее, и точно не уступать по эффективности рекурсивному подходу.
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
12.10.2017, 19:09
Цитата Сообщение от rattrapper Посмотреть сообщение
ну и в любом случае, итерационное решение этой задачи будет понятнее
если с аккумулятором то почти такое же)))
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
13.10.2017, 08:25
rattrapper,
Цитата Сообщение от rattrapper Посмотреть сообщение
итерационное решение этой задачи будет понятнее, и точно не уступать по эффективности рекурсивному подходу
Могли бы объяснить почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2017, 08:25
Помогаю со студенческими работами здесь

вычислить сумму
Ребят помогите новичку:) вычислить сумму: |sin(x)| + |sin(x^x)| + |sin(x^x^x)|+...+|sin(x^n), пока сумма не превысит заданного числа K

Вычислить сумму (-2)^1/1! + (-2)^2/2! + (-2)^3/3! + (-2)^4/4
Ребят, помогите с задачей. Недавно начала изучать С#, но что-то эту задачу я не понимаю =( ...

Вычислить сумму
Привет всем! Вообщем задание нужно вычислить сумму по заданному n, то есть от числа k до числа n ...

Вычислить сумму s
Вычислить сумму s, прекращая суммирование, когда очередной член суммы по абсолютной величине станет меньше 0,0001, при из- менении...

Вычислить сумму
Вычислить сумму 1/1+2/5+3/9+4/13+... пока слагаемое не станет меньше наперед заданного числа Е


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru