|
0 / 0 / 0 Регистрация: 19.02.2013 Сообщений: 10 |
|
|
1 |
|
Вычислить сумму факториалов19.02.2013, 17:41. Показов 25938. Ответов 6
ВЫЧИСЛИТЬ P=1+(1*2)+(1*2*3) +(1*2*3*…R)
0 |
|
Новичок 1642 / 1091 / 487 Регистрация: 17.07.2012 Сообщений: 5,345 |
||||
|
19.02.2013, 17:57 |
2 |
|||
|
Вычислите пожалуйста Возьми калькулятор и вычисляй. Добавлено через 10 минут
1 |
|
AllexVD 0 / 0 / 0 Регистрация: 02.02.2013 Сообщений: 3 |
||||
|
19.02.2013, 18:21 |
3 |
|||
|
Рекурсия:
0 |
|
Новичок 1642 / 1091 / 487 Регистрация: 17.07.2012 Сообщений: 5,345 |
||||
|
19.02.2013, 18:26 |
4 |
|||
|
AllexVD,нормальный вариант,раньше так-же делал подобные задачи,но проще мой вариант с одним циклом. Добавлено через 1 минуту
Добавлено через 17 секунд
1 |
|
Почетный модератор 64287 / 47586 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
|
|
19.02.2013, 18:43 |
5 |
|
Рекурсия: И рядом не лежало…
1 |
|
1642 / 1091 / 487 Регистрация: 17.07.2012 Сообщений: 5,345 |
|
|
19.02.2013, 18:46 |
6 |
|
Puporev,если честно знаю приблизительно,что такое рекурсия,но какие алгоритмы являются рекурсивными не понимаю и не отличаю их.
0 |
|
Puporev Почетный модератор 64287 / 47586 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
||||
|
19.02.2013, 19:12 |
7 |
|||
|
В рекурсии нет циклов, например факториал
1 |
Форум программистов Vingrad
| Модераторы: Poseidon |
Поиск: |
![]() ![]()
|
|
Опции темы |
| xF1x |
|
||
|
Шустрый Профиль Репутация: 0
|
Доброго времени суток!Помогите решить школьную задачу. найти сумму факториалов n чисел. 1!+2!+3!+…+n! За ранее благодарен! |
||
|
|||
| Rodman |
|
||
|
CIO Профиль
Репутация: 26
|
а какого типа переменную ты хошь использовать?! у тебя в паскале не хватит ресурсов!
——————— CRM с функцией АвтоОбзвона Лотереи мира |
||
|
|||
| Rrader |
|
||
|
Inspired =) Профиль Репутация: 14
|
Так быстрее, чем Rodman предложил… Это сообщение отредактировал(а) Rrader — 18.3.2008, 11:34 ——————— Let’s do this quickly! |
||
|
|||
| xF1x |
|
||
|
Шустрый Профиль Репутация: 0
|
Спасибо большое, но мне вроде бы надо попроще, мы только что прошли вложенные циклы, а число n наверное не больше 10 должно быть так что word подойдет. если через вложенные циклы? получится? |
||
|
|||
| Rodman |
|
||
|
CIO Профиль
Репутация: 26
|
может так, проверить не могу! ——————— CRM с функцией АвтоОбзвона Лотереи мира |
||
|
|||
| xF1x |
|
||
|
Шустрый Профиль Репутация: 0
|
Вот!!! то что нужно! СПАСИБО ОГРОМНОЕ! ВЫРУЧИЛИ! |
||
|
|||
| xF1x |
|
||
|
Шустрый Профиль Репутация: 0
|
Вот еще вопрос а что такое Inc? без него никак нельзя а то мне этого еще не преподавали! |
||
|
|||
| THandle |
|
||
Хранитель Клуба Профиль
Репутация: 30
|
xF1x, |
||
|
|||
| Rodman |
|
||
|
CIO Профиль
Репутация: 26
|
процедура inc(x) — увеличивает X на единицу (противоположная процедура dec) если в INC есть второй параметр inc(x, z) — то к X прибавляется значение Z ——————— CRM с функцией АвтоОбзвона Лотереи мира |
||
|
|||
| xF1x |
|
||
|
Шустрый Профиль Репутация: 0
|
Program MyProgram; Все равно не работает пишет сумма равна 0 |
||
|
|||
| ama_kid |
|
||
АСУТП-кодер Профиль
Репутация: 16
|
вместо I:=I+1 напиши Sum:=Sum+F; ——————— самурай без меча подобен самураю с мечом, но только без меча |
||
|
|||
| xF1x |
|
||
|
Шустрый Профиль Репутация: 0
|
СПАСИБО ОГРОМНОЕ! ВСЕ РАБОТАЕТ!!!! |
||
|
|||
![]() ![]()
|
| Правила форума «Центр помощи» | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
| 0 Пользователей: |
| « Предыдущая тема | Центр помощи | Следующая тема » |
Задать вопрос
Задавайте вопросы и получайте ответы от нашего сообщества
Отвечать
Отвечайте на вопросы и станьте экспертом в своей теме
Связаться с нами
Наши специалисты готовы ответить на ваши вопросы
Pascal Сумма факториалов.
-
Автор темы
Sherlock
-
Дата начала
06.04.2016
-
Ответы
8 -
Просмотры
4K -
-
Теги
-
paskal
паскал
факториал
-
О теме
Здравствуйте, вы читаете тему Сумма факториалов. созданную в 06.04.2016 в разделе
Delphi, Pascal пользователем
Sherlock.
Эта тема была просмотрена 3 633 раз(а),
получила 8 комментариев и 1 очки реакции…
Название категории
Delphi, Pascal
Название темы
Сумма факториалов.
Количество реакций к первому сообщению
- Регистрация
- 12.05.2015
- Сообщения
- 6
- Реакции
- 1
- Баллы
- 0
-
- Автор темы
-
#1
Задача: Дано натуральное число N (N>0). Используя один цикл, найти сумму 1!+2!+3!+…+N!.
(Выражение N!-N факториал-обозначает произведение всех целых чисел 1 до N: N!=1*2*3…*N)
Решения:
- Регистрация
- 07.04.2016
- Сообщения
- 2
- Реакции
- 0
- Баллы
- 0
-
-
#2
program Factorial;
var
Sum,Fact:longint;
I,N:byte;
begin
write(‘Введите число N=’); readln(N);
if I<1 then writeln(‘Число должно быть > 0’) else begin
Sum:=1;
Fact:=1;
for I:=1 to N do begin
Fact:=Fact*I;
Sum:=Sum+Fact;
end;
writeln(‘Сумма = ‘,Sum);
end;
readln;
end.
- Регистрация
- 12.05.2015
- Сообщения
- 6
- Реакции
- 1
- Баллы
- 0
-
- Автор темы
-
#3
Это программа не работающий )
Последнее редактирование: 07.04.2016
- Регистрация
- 12.03.2015
- Сообщения
- 899
- Реакции
- 452
- Баллы
- 35
- Адрес
-
mySQL
-
- Администратор
- Команда форума
-
#4
Не будет ли правильно вот так
- Регистрация
- 12.05.2015
- Сообщения
- 6
- Реакции
- 1
- Баллы
- 0
-
- Автор темы
-
#5
Будет, но задаче написано что надо решат с одним циклом )
- Регистрация
- 12.03.2015
- Сообщения
- 899
- Реакции
- 452
- Баллы
- 35
- Адрес
-
mySQL
-
- Администратор
- Команда форума
-
#6
Извиняюсь не правильно прочитал .
- Регистрация
- 07.04.2016
- Сообщения
- 2
- Реакции
- 0
- Баллы
- 0
-
-
#7
Я ошиблась при наборе текста. В «If I<1» нужно «if N<1″». Приношу свои извинения.
- Регистрация
- 12.03.2015
- Сообщения
- 899
- Реакции
- 452
- Баллы
- 35
- Адрес
-
mySQL
-
- Администратор
- Команда форума
-
#8
Если что код можете проверит здесь
- Регистрация
- 12.05.2015
- Сообщения
- 6
- Реакции
- 1
- Баллы
- 0
-
- Автор темы
-
#9
Ничего страшного )
———- Сообщение добавлено в 22:33 ———- Предыдущее сообщение было в 22:33 ———-
Вот, точно ) теперь работает.
Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи for16-24.
For16°. Дано вещественное число A и целое число N (> 0). Используя один цикл, вывести все целые степени числа A от 1 до N.
Заводим специальную переменную, в которую будем записывать новое значение степени.
program for16;
var
A, Pow: real;
N, i: integer;
begin
write('Введите A и N: ');
read(A, N);
Pow := 1;
for i := 1 to N do
begin
Pow := Pow * A; // Умножаем предыдущее число на А
writeln(A, ' в ', i, ' степени равно ', Pow);
end;
end.
For17. Дано вещественное число A и целое число N (> 0). Используя один цикл, найти сумму 1 + A + A2 + A3 + … + AN.
Модифицированная версия for16. В этой задаче мы не выводим значения степеней сразу, а складываем их в отдельную переменную.
program for17;
var
A, Pow, Sum: real;
N, i: integer;
begin
write('Введите A и N: ');
read(A, N);
Pow := 1;
Sum := 1;
for i := 1 to N do
begin
Pow := Pow * A; // Узнаем следующую степень числа А
Sum := Sum + Pow; // Увеличиваем сумму на эту степень
end;
write('Сумма 1 +... + A в степени N равно ', Sum);
end.
For18. Дано вещественное число A и целое число N (> 0). Используя один цикл, найти значение выражения 1 – A + A2 – A3 + … + (–1)N·AN. Условный оператор не использовать.
Используем дополнительную переменную, например, Z. Присваиваем значение -1 и каждый цикл умножаем значение степени на Z.
program for18;
var
A, Pow, Sum: real;
N, i, Z: integer;
begin
write('Введите A и N: ');
read(A, N);
Pow := 1;
Sum := 1;
Z := -1; // Присваиваем -1
for i := 1 to N do
begin
Pow := Pow * A;
Pow := Z * Pow; // Умножаем значение степени.
Sum := Sum + Pow;
end;
write('Сумма равна ', Sum);
end.
For19°. Дано целое число N (> 0). Найти произведение N! = 1·2·…·N (N–факториал). Чтобы избежать целочисленного переполнения, вычислять это произведение с помощью вещественной переменной и вывести его как вещественное число.
Каждую итерацию цикла умножаем factorial на i.
program for_19; var factorial: real; i, N: integer; begin read(N); factorial := 1; // По определению 0! = 1 for i := 1 to N do factorial := factorial * i; write(factorial); end.
For20°. Дано целое число N (> 0). Используя один цикл, найти сумму 1! + 2! + 3! + … + N! (выражение N! — N–факториал — обозначает произведение всех целых чисел от 1 до N: N! = 1·2·…·N). Чтобы избежать целочисленного переполнения, проводить вычисления с помощью вещественных переменных и вывести результат как вещественное число.
Получая новое значение факториала, суммируем его со всеми предыдущими значениями.
program for_20;
var
factorial, sum_factorial: real;
i, N: integer;
begin
read(N);
factorial := 1;
sum_factorial := 1; // По определению 0! = 1
for i := 1 to N do
begin
factorial := factorial * i; // Узнаем фокториал
sum_factorial := sum_factorial + factorial; // Суммируем
end;
write('Сумма факториалов - ', sum_factorial);
end.
For21. Дано целое число N (> 0). Используя один цикл, найти сумму 1 + 1/(1!) + 1/(2!) + 1/(3!) + … + 1/(N!) (выражение N! — N–факториал — обозначает произведение всех целых чисел от 1 до N: N! = 1·2·…·N). Полученное число является приближенным значением константы e = exp(1).
Задача аналогична предыдущей, только на этот раз мы делим единицу на значение факториала, и после этого складываем их.
program for_21;
var
factorial, sum_factorial: real;
i, N: integer;
begin
read(N);
factorial := 1;
sum_factorial := 1;
for i := 1 to N do
begin
factorial := factorial * i;
sum_factorial := sum_factorial + 1 / factorial; // Делим 1 на факториал
end;
writeln('Сумма факториалов, деленных на 1 = ', sum_factorial, ' = ', Exp(1)); // Проверка программы.
end.
For22. Дано вещественное число X и целое число N (> 0). Найти значение выражения 1 + X + X2/(2!) + … + XN/(N!) (N! = 1·2·…·N). Полученное число является приближенным значением функции exp в точке X.
program for_22;
var
factorial, sum_factorial, x: real;
i, N, b: integer;
begin
write('Введите N: ');
readln(N);
write('Введите x: ');
readln(x);
b := x;
factorial := 1;
sum_factorial := 1;
for i := 1 to N do
begin
factorial := factorial * i; // Узнаем факториал
sum_factorial := sum_factorial + x / factorial; // Складываем, деля х на факториал
x := x * b; // возводим значение х в следующую степень
end;
writeln('Сумма факториалов, деленных на X в степенях = ', sum_factorial, ' = ', Exp(x)); // проверка
end.
For23. Дано вещественное число X и целое число N (> 0). Найти значение выражения X – X3/(3!) + X5/(5!) – … + (–1)N·X2·N+1/((2·N+1)!) (N! = 1·2·…·N). Полученное число является приближенным значением функции sin в точке X.
Я решил, что лучше высчитывать каждую степень х и каждый факториал, а затем проверять i на четность.
program for_23;
var
factorial, sum_factorial, x, xs: real;
i, N, z: integer;
begin
write('Введите N: ');
readln(N);
write('Введите x: ');
readln(x);
factorial := 1;
sum_factorial := 0; // начальное значение на этот раз не 1.
z := -1;
xs := 1; // значение степени х
for i := 1 to 2 * N + 1 do
begin
factorial := factorial * i; // значение факториала
xs := xs * x; // степень х
if i mod 2 <> 0 then // проверяем нечетность i
begin
z := -z; // меняем знак z
sum_factorial := sum_factorial + z * (xs / factorial);
end;
end;
writeln('Сумма факториалов = ', sum_factorial, ' = ', sin(x)); //проверка
end.
For24. Дано вещественное число X и целое число N (> 0). Найти значение выражения 1 – X2/(2!) + X4/(4!) – … + (–1)N·X2·N/((2·N)!) (N! = 1·2·…·N). Полученное число является приближенным значением функции cos в точке X.
Аналогична предыдущей задачи.
program for_24;
var
factorial, sum_factorial, x: real;
i, N, z: integer;
begin
write('Введите N: ');
readln(N);
write('Введите x: ');
readln(x);
factorial := 1;
sum_factorial := 1; // стартовое значение снова 1
z := 1;
for i := 1 to 2 * N do
begin
factorial := factorial * i;
if i mod 2 = 0 then
begin
z := -z;
x := x * x;
sum_factorial := sum_factorial + z * (x / factorial);
end;
end;
writeln('Сумма факториалов = ', sum_factorial, ' = ', cos(x)); // проверка
end.
Все! Сегодня были непростые задачи, но я надеюсь, что вы справились. Если у вас возникли вопросы пишите нам сюда или в комментарии, которые расположены чуть ниже.
uses crt;
var i,m,n:integer;
p,s:longint;
begin
clrscr;
write('M N -> ');
readln(m,n);
p:=1;
for i:=1 to m do p:=p*i;
s:=p;
for i:=m+1 to n do
begin
p:=p*i;
s:=s+p;
end;
writeln('S=',s);
readln;
end.
Похожие записи/страницы:
- На вход подается последовательность, оканчивающаяся нулем. Kak определить какое кол-во факториалов в этой…
- Составить программу, которая среди всех трехзначных чисел находит числа, равные сумме факториалов своих цифр -…
- Дано натуральное число. Найти число, получаемое из исходного заменой всех его четных чисел на двойки — Pascal(Паскаль)
- Проверить, является ли заданная целочисленная матрица A(N, N) «магическим квадратом» — Pascal(Паскаль)
- Вычисление суммы положительных чисел, введенных с клавиатуры — Pascal(Паскаль)
- Вычисление суммы максимального и минимального из последовательно вводимых чисел, рассматриваются только чётные числа.…
- Нахождение суммы всех чётных чисел от 0 до 100 — Pascal(Паскаль)
- Задано натуральное N. Вычислить сумму 1!+2!+3!+…+N! — Pascal(Паскаль)







































