| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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-ый член последовательности) Поэтому можно сделать так (псевдокод):
Этот ответ добавлен с нового Винграда - 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) Я уже не говорю о том, что факториал - это дополнительные вычисления. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Delphi-id56781c73ae2015fe0b8b4568#findElement_E7045_567d3e3fae20157f38150640_0 |
| Автор: Garmahis 28.12.2015, 10:00 |
| Да согласен. |