Дано натуральное число п. Вычислить: 1*2 + 2*3*4 + … + n*(n + 1) *…*2n
Дано натуральное число п. Вычислить: 1*2 + 2*3*4 + … + n*(n + 1) *…*2n
Ответ(ы) на вопрос:
Гость
Фактически требуется вычислить значение следующего выражения:
[latex]\displaystyle S=\sum_{i=1}^n\prod_{j=i}^{2i}j[/latex]
В связи с ограниченной разрядностью представления целых чисел в традиционном Паскале, используется появившийся в PascalABC.Net 3.0 тип данных BigInteger, имеющий произвольную разрядность.
// PascalABC.NET 3.0, сборка 1144 от 16.01.2016
begin
var n:=ReadInteger('n=');
var s:BigInteger:=0;
for var i:=1 to n do begin
var sp:BigInteger:=1;
for var j:=i to 2*i do sp*=j;
s+=sp
end;
Writeln('S=',s)
end.
Тестовые решения:
n= 10
S=6867491336546
n= 20
S=6790094079076573854634585045346
n= 200
S=16259132945245603272459357532926431055851011262226423901521610672683053074122398284194138200811393508183584635163325580662485661758792994853918852068566553866936403927187322304685846233840511935657079269303199247681681900473643377764171469288217130928626467970695282872799909803648986880297649242631688825602025883316969148173917409343244672476380960595892701641078133125672741993996178795224513183779220724481183819428328185978629676722172834554113541584734035734977004732415721620206280485845346
Не нашли ответ?
Похожие вопросы