Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Delphi


Автор: СОЛОЛА 21.12.2015, 18:34
1.Обчислити суму перших n членів послідовності: у=10+100/1*2+1000/1*2*3+10000/1*2*3*4+....

Автор: mikeyess 22.12.2015, 10:05
Добрый день.
В чем проблема?
С уважением, Mike

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Delphi-id56781c73ae2015fe0b8b4568#findElement_E7045_5678f62cae201566061504ec_0

Автор: СОЛОЛА 22.12.2015, 16:58
Не знаю как делать и с чего начать(( 

Автор: Garmahis 23.12.2015, 11:09
С того что смотрим на формулу и понимаем что элемент сути это 10^n/n! потом открываем учебник и смотрим как делать цикл от 1 до n. перед циклом пишем y:=0
в цикле y=y+10^n/n!. Понятное дело что вам надо посмотреть как делаются математические операции возведения в степень и факториал числа. после цикла выводим y.

Автор: Envy 23.12.2015, 14:01
так можно легко получить переполнение при вычислении факториала. 13! уже больше maxint, например.

Можно сделать по-другому:
b(1) = 10, b(n) = b(n-1) * 10/n (b(n) = n-ый член последовательности)
Поэтому можно сделать так (псевдокод):
Код

sum, b = 10
for i = 2..n {
    b = b * (10/i)
    sum = sum + b
}



Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Delphi-id56781c73ae2015fe0b8b4568#findElement_E7045_567a7f13ae20153b6d150638_0

Автор: Garmahis 23.12.2015, 15:53
или использовать int64

Автор: Envy 25.12.2015, 16:01
21! > max(Int64), a 1800! > max(Extended)(1.1*10^4932-1) smile 
Я уже не говорю о том, что факториал - это дополнительные вычисления.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Delphi-id56781c73ae2015fe0b8b4568#findElement_E7045_567d3e3fae20157f38150640_0

Автор: Garmahis 28.12.2015, 10:00
Да согласен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)