Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 27

Разработать программу обчисления суммы факториалов всех целых чисел от 1 до N

11.02.2013, 12:49. Показов 2270. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите решить задачку по факториалам
Например мне нужно посчитать сумму 6-ти факториалов.
N=6 (кол-во факториалов)
Цикл For i= 1 To n
a= 1*1
a=1*2
a=2*3
a=6*4
a= 24*5
a= 120*6

А как мне сумму их посчитать, если например факториалов у меня будет не 6 а намного больше? Простите за глупый вопрос, но я только этому учусь. Заранее всем спасибо за помощь.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2013, 12:49
Ответы с готовыми решениями:

Составить программу вычисления суммы факториалов всех четных чисел от m до n
Составить программу вычисления суммы факториалов всех четных чисел от m до n

Написать программу вычисления суммы факториалов всех чётных чисел от 2 до 8
Решить задачу, используя процедуру и функцию Написать программу вычисления суммы факториалов всех чётных чисел от 2 до 8. с помощью...

Составить программу вычисления суммы факториалов всех четных чисел от m до n
Составить программу вычисления суммы факториалов всех четных чисел от m до n С помощью процедур

7
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
11.02.2013, 13:52
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub main()
Dim F As Double, S As Double
Dim n As Long
F = 1
On Error Resume Next
For n = 1 To InputBox("Введите N")
  F = F * n
  If Err Then MsgBox "Приехали": End
  S = S + F
  If Err Then MsgBox "Приехали": End
Next n
MsgBox n - 1 & "  " & S
End Sub
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.02.2013, 14:03
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub bb()
Dim i&, n&, f#, s#
n = InputBox("N=")
f = 1
On Error GoTo 1
For i = 1 To n
    f = f * i
    s = s + f
Next
MsgBox "Сумма факториалов чисел от 1 до " & n & " равна " & s, vbInformation
Exit Sub
 
1: MsgBox "Посчитать до " & n & " не удалось (переполнение)" & vbLf & _
    "Сумма факториалов чисел от 1 до " & i - 1 & " равна " & s, vbExclamation
End Sub
Добавлено через 6 минут
В Excel проще
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub bb1()
Dim n&, s
n = InputBox("N=")
s = Evaluate("SUM(FACT(ROW(1:" & n & ")))")
If IsError(s) Then
    MsgBox "Посчитать до " & n & " не удалось (переполнение)", vbExclamation
Else
    MsgBox "Сумма факториалов чисел от 1 до " & n & " равна " & s, vbInformation
End If
End Sub
1
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
11.02.2013, 15:25
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub bb1000000()
Dim Fm As Double, Fe As Long, Sm As Double, Se As Long
Dim n As Long
Fm = 1
For n = 1 To InputBox("Введите N", , 1000000)
  Fm = Fm * n
  While Fm >= 10
    Fm = Fm / 10
    Fe = Fe + 1
  Wend
  Sm = Sm + Fm * 10 ^ (Fe - Se)
  While Sm > 10
    Sm = Sm / 10
    Se = Se + 1
  Wend
Next n
MsgBox "Сумма факториалов чисел от 1 до " & n - 1 & " примерно равна " & Sm & "*10^" & Se, vbInformation
End Sub
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
12.02.2013, 08:44
Лучший ответ Сообщение было отмечено как решение

Решение

Факториал - так факториал... И без ограничений разрядности (хотя и не слишком быстро)!
Миниатюры
Разработать программу обчисления суммы факториалов всех целых чисел от 1 до N  
Вложения
Тип файла: zip LongArr.zip (24.1 Кб, 10 просмотров)
3
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
12.02.2013, 11:01
Цитата Сообщение от Catstail Посмотреть сообщение
Факториал - так факториал...
Вообще то сумма факториалов требовалась
Конечно, это реализуемо с помощью приложенной библиотеки, но как-то для учебных целей не очень подходит
И настораживают неподписанные библиотеки
Кликните здесь для просмотра всего текста
Visual Basic
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Option Explicit
'На форме кнопка Command1, Text1 для ввода числа и Text2 (побольше размером и с установленным MultiLine=True) для вывода результата
Private Sub Command1_Click()
Dim i As Long, fa As String, s As String
fa = 1
s = 0
For i = 1 To Val(Text1.Text)
  fa = mul(fa, CStr(i))
  s = add(s, fa)
Next i
Text2.Text = s
End Sub
 
'сложение
Public Function add(m1 As String, m2 As String) As String
Dim i As Long, L1 As Long, L2 As Long
Dim a() As Byte, b1() As Byte, b2() As Byte
L1 = Len(m1)
L2 = Len(m2)
If L1 > L2 Then
  b1 = "0" & m1
  b2 = String$(L1 - L2 + 1, "0") & m2
  a = String$(L1 + 1, "0")
Else
  b2 = "0" & m2
  b1 = String$(L2 - L1 + 1, "0") & m1
  a = String$(L2 + 1, "0")
End If
For i = UBound(a) - 1 To 2 Step -2
  a(i) = a(i) + b1(i) + b2(i) - 96
  If a(i) > 57 Then
    a(i) = a(i) - 10
    a(i - 2) = 49
  End If
Next i
If a(0) = 48 Then a(0) = 32
add = Trim$(a)
End Function
 
'вычитание
Function dif(m1 As String, m2 As String) As String
Dim a() As String, n As Byte
Dim i1 As Long, i2 As Long, L1 As Long, L2 As Long
  L1 = Len(m1): L2 = Len(m2)
  ReDim a(L1)
  For i1 = L1 To 1 Step -1
    If L2 > 0 Then
      a(i1) = Mid$(m1, i1, 1) - Mid$(m2, L2, 1) - i2
      L2 = L2 - 1
    Else
      a(i1) = Mid$(m1, i1, 1) - i2
    End If
    If a(i1) < 0 Then
      a(i1) = a(i1) + 10
      i2 = 1
    Else
      i2 = 0
    End If
  Next i1
  For i1 = 1 To L1 - 1
    If a(i1) = "0" Then a(i1) = "" Else Exit For
  Next i1
  dif = Join(a, "")
End Function
 
'умножение
Function mul(m1 As String, m2 As String) As String
Dim a() As String, n As Byte
Dim i1 As Long, i2 As Long, L1 As Long, L2 As Long
  L1 = Len(m1): L2 = Len(m2)
  ReDim a(L1 + L2)
  For i2 = L2 To 1 Step -1
    n = Mid$(m2, i2, 1)
    For i1 = L1 To 1 Step -1
      a(i1 + i2) = Val(a(i1 + i2)) + n * Mid$(m1, i1, 1)
      If a(i1 + i2) > 9 Then
        a(i1 + i2 - 1) = Val(a(i1 + i2 - 1)) + a(i1 + i2) \ 10
        a(i1 + i2) = a(i1 + i2) Mod 10
      End If
    Next i1
  Next i2
  mul = Join(a, "")
End Function
 
'деление
Function div(m1 As String, m2 As String) As String
Dim dm As String
Dim i1 As Long, i2 As Long, L1 As Long, L2 As Long
  L1 = Len(m1): L2 = Len(m2)
  dm = Mid$(m1, 1, L2)
  For i1 = 1 To L1 - L2 + 1
    i2 = 0
    While StrCompEx(dm, m2) >= 0
      dm = dif(dm, m2)
      i2 = i2 + 1
    Wend
    If dm = "0" Then dm = ""
    dm = dm & Mid$(m1, L2 + i1, 1)
    div = div & IIf(Len(div) = 0 And i2 = 0, "", i2)
  Next i1
End Function
 
'Сравнение 2-х положительных целых сверхбольших чисел в строковом формате
Function StrCompEx(m1 As String, m2 As String) As Integer
  StrCompEx = Sgn(Len(m1) - Len(m2))
  If StrCompEx = 0 Then StrCompEx = StrComp(m1, m2)
End Function
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
12.02.2013, 11:52
Цитата Сообщение от Апострофф Посмотреть сообщение
И настораживают неподписанные библиотеки
- если бы была подписана - было бы легче?

Да, реализация арифметики на строках - не слишком сложное упражнение... А Ваш код не учитывает ряда моментов (например как у Вас сложить положительное число с отрицательным?) Понимаю, что это нетрудно доработать. Вот я все это и реализовал. В далеком 1992-м...
0
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 27
12.02.2013, 12:33  [ТС]
Спасибо всем большое, Вы мне все дали очень хороший совет, и помогли решить мою задачку!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2013, 12:33
Помогаю со студенческими работами здесь

Составить программу для вычисления суммы факториалов всех четных чисел от 1 до n
Помогите, пожалуйста, составить программу для вычисления суммы факториалов всех четных чисел от 1 до n с помощью методов возвращающих...

Вычисление суммы факториалов всех четных чисел от m до n
Составить программу для вычисления суммы факториалов всех четных чисел от m до n.

Написать программу для вычисления суммы факториалов всех нечетных чисел от 1 до 9.
Помогите, пожалуйста, решить задачу в С++. Написать программу для вычисления суммы факториалов всех нечетных чисел от 1 до 9.

Вычисление суммы факториалов всех нечетных чисел от 1 до N
Добрый день, прошу помощи. Нужно составить программу для вычисления суммы факториалов всех нечетных чисел от 1 до N. Заранее...

Процедуры. Написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9.
написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9. выручайте плиз)


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru